Подтвердить что ты не робот

Как проверить, нет ли видимого состояния div?

У меня есть табуляции, подобные этому.

<li id="singlechatpanel-1" style="visibility: hidden;">
     //content
</li>

Попытка проверить его так:

$(".subpanel a").click(function() 
     {
        var chatterNickname = $(this).text();

        if(!$("#singlechatpanel-1").is(':visible'))
        {
            alert("Room 1 is filled.");
            $("#singlechatpanel-1").css({'visibility':'visible'});
            $("#singlechatpanel-1 #chatter_nickname").html("Chatting with: " + chatterNickname);
        }

Если условие всегда возвращает false. Как проверить состояние видимости этого div?

4b9b3361

Ответ 1

is(':visible') проверяет свойство display элемента, вы можете использовать метод css.

if (!$("#singlechatpanel-1").css('visibility') === 'hidden') {
   // ...
}

Если вы устанавливаете свойство display элемента в none, то ваш оператор if возвращает true.

Ответ 2

Проверьте, видимо ли это.

$("#singlechatpanel-1").is(':visible');

Проверьте, не скрыта ли она.

$("#singlechatpanel-1").is(':hidden');

Ответ 3

если элемент скрыт jquery, затем используйте

if($("#elmentid").is(':hidden'))

Ответ 4

Вы можете использовать .css(), чтобы получить значение "видимость":

 if( !$("#singlechatpanel-1").css('visibility') === "hidden"){}

http://api.jquery.com/css/

Ответ 5

Вы можете использовать метод (': hidden'), чтобы узнать, отображается ли ваш div или нет. Также его хорошая практика кэширования элемента, если вы используете его несколько раз в своем коде.

$(".subpanel a").click(function() 
     {
        var chatterNickname = $(this).text();
        var $chatPanel = $("#singlechatpanel-1");

        if(!$chatPanel.is(':hidden'))
        {
            alert("Room 1 is filled.");
            $chatPanel.show();
            $("#singlechatpanel-1 #chatter_nickname").html("Chatting with: " + chatterNickname);
        }
});

Ответ 6

if (!$('#singlechatpanel-1').css('display') == 'none') {
   alert('visible');
}else{
   alert('hidden');
}

Ответ 7

Добавьте свой li в класс и сделайте $(".myclass").hide(); в начале, чтобы скрыть его вместо атрибута стиля видимости.

Насколько я знаю, jquery использует атрибут стиля display для отображения/скрытия элементов вместо видимости (может быть, неверно на этом, в любом случае это стоит попробовать)