В jQuery, как я могу узнать, скрыт ли текущий объект или нет? - PullRequest
14 голосов
/ 04 февраля 2009

Прежде чем позвонить:

$('myObject').show();

Я хочу знать, скрыт ли он в данный момент или видим.

Ответы [ 4 ]

40 голосов
/ 04 февраля 2009

Есть 2 способа сделать это, о которых я знаю:

if ($('#something').is(':hidden')) { }

или

if ($('#something').is(':visible')) { }

Они оба должны работать.

Вы также можете сделать что-то вроде этого:

$('#something:hidden').show();
$('#something:visible').hide();

, которая будет вызывать .show (), только если элемент уже скрыт, или вызывать .hide (), если элемент уже видим.

10 голосов
/ 04 февраля 2009

Вы также можете использовать Toggle $(this).toggle();

9 голосов
/ 04 февраля 2009

Вы можете проверить это с помощью функции css ():

if ($('myObject').css('display') == 'none') {
  $('myObject').show();
}

EDIT:

Не знал, насколько крут: скрытый селектор. Мое предложение все еще полезно для тестирования других атрибутов, но предложение Алекса в этом случае более хорошее.

3 голосов
/ 04 февраля 2009

С JQuery FAQ :

 var isVisible = $('myObject').is(':visible');
 var isHidden = $('myObject').is(':hidden');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...