41

我有这样的标签。

<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);
        }

如果条件总是返回假。如何检查此 div 的可见性状态?

4

8 回答 8

55

检查它是否可见。

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

检查它是否隐藏。

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

于 2014-05-29T11:14:50.440 回答
50

is(':visible')检查display元素的属性,可以使用css方法。

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

如果您将display元素的属性设置为,none那么您的if语句将返回true.

于 2012-09-10T14:30:50.693 回答
17

如果元素被 jquery 隐藏然后使用

if($("#elmentid").is(':hidden'))
于 2015-03-11T09:37:48.803 回答
8

您可以使用.css()来获取“可见性”的值:

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

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

于 2012-09-10T14:29:17.917 回答
3

您可以使用 (':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);
        }
});
于 2012-09-10T15:20:16.537 回答
3
if (!$('#singlechatpanel-1').css('display') == 'none') {
   alert('visible');
}else{
   alert('hidden');
}
于 2015-09-01T09:55:34.463 回答
1

将您添加li到一个类中,并$(".myclass").hide();在开始时隐藏它而不是可见性样式属性。

据我所知,jquery 使用displaystyle 属性来显示/隐藏元素而不是可见性(这可能是错误的,在任何一种情况下都值得尝试)

于 2012-09-10T14:33:10.603 回答
0

您可以通过以下两种方式中的任何一种来完成:

$("#elementId").css('visibility')
and
$("#elementId").is(':visible');

如果您的元素可见,那么

$("#elementId").css('visibility') will return "visible"
and
$("#elementId").is(':visible') will return true

但是如果您的元素不可见,那么

$("#elementId").css('visibility') will return undefined
and
$("#elementId").is(':visible') will return false
于 2021-03-30T16:33:44.313 回答