В 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');