如何检查div是否为可见状态?

时间:2012-09-10 14:25:47

标签: jquery

我有这样的标签。

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

如果condition总是返回false。如何检查此div的可见性状态?

8 个答案:

答案 0 :(得分:49)

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

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

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

答案 1 :(得分:47)

检查它是否可见。

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

检查它是否隐藏。

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

答案 2 :(得分:15)

如果元素被jquery隐藏,则使用

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

答案 3 :(得分:8)

您可以使用.css()获取“公开程度”的值:

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

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

答案 4 :(得分: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);
        }
});

答案 5 :(得分:3)

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

答案 6 :(得分:1)

将您的li添加到某个班级,并在开始时执行$(".myclass").hide();隐藏它而不是可见性样式属性。

据我所知,jquery使用display样式属性来显示/隐藏元素而不是可见性(在这两种情况下可能是错误的,无论哪种情况都值得尝试)

答案 7 :(得分: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
相关问题