Ответ 1
Используйте display:none;
вместо видимости
Это отлично работает для меня
$(function(){
$("#aLink2").click(function(){
$('#loading').show();
});
});
Рабочий пример: http://jsfiddle.net/HShHg/6/
У меня есть следующий код:
$('#loading').css("visibility", "visible");
$('#loading').show();
По какой-то причине мне неизвестно, когда я использую CSS, он работает!
Но когда я использую .show();
Это не работает. Пожалуйста, любезно помогите. Я новичок в JQuery.
Спасибо.
Edit:
<div class="footerOrder" id="loading" style="visibility:visible;">
<img src="../utils/loadingExistenz.gif" width="32" height="32" border="0" />
</div>
Пробовал это:
<div class="footerOrder" id="loading" style="display:block;">
Тогда:
$('#loading').hide();
И по-прежнему не по какой-то причине!
EDIT: странно, что это работает для всех других DIV!
Используйте display:none;
вместо видимости
Это отлично работает для меня
$(function(){
$("#aLink2").click(function(){
$('#loading').show();
});
});
Рабочий пример: http://jsfiddle.net/HShHg/6/
jQuery .show()
и .hide()
работают только с свойством CSS display
, а не по свойству visibility
. Я просто проверил исходный код jQuery 1.7 и подтвердил, что это так.
Итак, .css('display', 'none')
будет соответствовать .show()
.
Если вы хотите изменить видимость, вы просто измените css напрямую или создадите свои собственные методы hideV()
и showV()
, чтобы сделать это для вас:
jQuery.fn.showV = function() {
this.css('visibility', 'visible');
}
jQuery.fn.hideV = function() {
this.css('visibility', 'hidden');
}
Согласно документам:
.show() This is roughly equivalent to calling .css('display', 'block')
поэтому, если вы перепутали с visibility
, это не поможет вам.
Что вы должны делать, всегда скрывайте с помощью .css('display', 'none')
или с помощью .hide()
Я только что нашел этот полезный docs:
Элементы с видимость: скрытые или непрозрачность: 0 считаются видимыми, поскольку они все еще потребляют пространство в макете.
jQuery .show()
требует наличия display:none
свойства css
Я бы поместил visibility: hidden;
в элементе, а затем использовал .css("visibility", "visible");
, чтобы показать его именно потому, что он все еще занимает место на странице.
Это позволит избежать дрожания страниц при загрузке и страшной Flash-информации о невидимом контенте (FOUC).
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('div#sidebar-collapses').click(function(){
if ( $("#title").is(":hidden") ) {
$("#title").show();
} else if ( $("#title").is(":visible") ) {
$("#title").hide();
}
})
});
</script>
</head>
<body>
<div class="sidebar-collapse" style="" id="sidebar-collapses">
<a href="#" class="sidebar-collapse-icon with-animation">
Test
<i class="menu"></i>
</a>
</div>
<a href="mysite_url" id="title" style="display:none;"> <br> My Site Name </a>
</body>
</html>