Предположим, у меня есть 2 элемента, div1 и div2. И когда я нажимаю на div1, div2 должен .toggleClass()
между visibility=hidden
и visibility=visible
. Это прекрасно работает. Но когда я пробую это:Как проверить, истинна ли видимость элемента = скрыта jQuery
if($('#div2').css('visibility') == 'hidden') {
$('#div1').replaceWith('<span> Duh </span>');
}
Ничего не происходит. Если я изменю 'hidden'
на 'visible'
, он работает нормально. Но этого я не хочу. Я знаю, что когда visibility = hidden используется, элемент все еще считается видимым, но shoulnd't .css('visibility') == 'hidden'
проверить, установлен ли стиль элемента для видимости = скрытый? Что в моем случае должно быть правдой.
Я также попытался
if($('#div2').hasClass('visHidden')) {
$('#div1').replaceWith('<span> Duh </span>');
}
Но ничего не происходит.
Может ли проблема заключаться в том, что при загрузке DOM ни один из классов visHidden и visVisible не установлен? Потому что я только устанавливаю их с помощью jQuery, если элемент щелкнут. Если это так, то можно ли обойти это? И я не могу использовать свойство отображения.
Можете ли вы предоставить jsFiddle? – Pouki
Когда показаны показанные снапплеты? (Как-то кажется, что вы ожидаете, что код заставит div1 автоматически обновляться при изменении класса div2) – subsub
@subsub. Вы абсолютно правы. Я добавил кнопку обновления: '$ ('# refresh'). Click (function() {...}' и после этого if-statement выполняется правильно. Спасибо, что указали на то, что должно было быть очевидно .. – user2829315