В jQuery, как я могу определить, скрыт ли текущий объект или нет?

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

$('myObject').show();

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

Ответы

Ответ 1

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

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

EDIT:

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

Ответ 2

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

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

или

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

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

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

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

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

Ответ 3

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

Ответ 4

Из jQuery FAQ:

 var isVisible = $('myObject').is(':visible');
 var isHidden = $('myObject').is(':hidden');