Проверьте, что div скрыт с помощью jquery - PullRequest
35 голосов
/ 13 декабря 2011

Это мой div

<div id="car2" style="display:none;"></div>

Тогда у меня есть кнопка Показать, которая будет показывать div при нажатии:

$("show").click(function() {
    $("$car2").show();
}); 

Итак, сейчас я хочу проверить, скрыт ли div #car2 перед отправкой формы:

if($('#car2').is(':hidden')) {
    alert('car 2 is hidden');
}

Теперь вот проблема. Несмотря на то, что div #car2 уже отображается, я все еще получил сообщение с предупреждением, которое означает, что jQuery предполагает, что div #car2 все еще скрыт.

Моя версия jQuery - 1.7.

Спасибо.

EDIT:

Как сказал Джаспер, мой код верен и может быть запущен с помощью этой демонстрации .

То, что я подозреваю, что есть некоторый конфликт с jquery формой к плагину мастера , который я использую с моей формой. У кого-нибудь есть идеи, чтобы решить эту проблему?

Ответы [ 6 ]

65 голосов
/ 13 декабря 2011

Вы можете проверить свойство CSS display:

if ($('#car').css('display') == 'none') {
    alert('Car 2 is hidden');
}

Вот демоверсия: http://jsfiddle.net/YjP4K/

30 голосов
/ 13 декабря 2011

Попробуйте:

if(!$('#car2').is(':visible'))
{  
    alert('car 2 is hidden');       
}
9 голосов
/ 20 февраля 2015

Попробуйте

if($('#car2').is(':hidden'))
{  
    alert('car 2 is hidden');       
}
4 голосов
/ 13 декабря 2011

Попробуйте вместо этого проверить свойство: visible.

if($('#car2').not(':visible'))
{
    alert('car 2 is hidden');       
}
2 голосов
/ 13 декабря 2011

Вы заметили свою опечатку, $car2 вместо #car2?

В любом случае, :hidden, кажется, работает как положено, попробуйте здесь .

1 голос
/ 05 июля 2016

Вы можете использовать,

if (!$("#car-2").is(':visible'))
{
      alert('car 2 is hidden');
}
...