jQuery count:可见元素不起作用

时间:2015-02-12 21:26:07

标签: jquery html firefox

Firefox控制台返回'隐藏'为此:

jQuery(".popup:visible").css('visibility')

为什么?如果元素被隐藏,为什么jQuery(" .popup:visible")会选择这个元素?我想用这个条件:

if(jQuery(".popup:visible").size() == 0)

但出于第一个原因,这并没有正常工作。

2 个答案:

答案 0 :(得分:1)

CSS visibility属性与CSS display属性不同。可见性为visiblehidden。如果它被隐藏了,那么你就无法在页面上看到它但它仍然存在并占据整个高度/宽度。 display:none将其删除。 jQuery正在检查显示属性。

答案 1 :(得分:1)

根据此http://api.jquery.com/visible-selector/

  

如果元素占用文档中的空间,则认为元素是可见的。可见元素的宽度或高度大于零。

     

具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍占用布局中的空间。

     

文档中没有的元素被视为隐藏; jQuery没有办法知道它们在附加到文档时是否可见,因为它取决于适用的样式。

所以我猜测你的弹出窗口设置了宽度或高度,这就是条件不起作用的原因。

无论如何我都会使用display:none;作为弹出窗口,因为具有该属性的元素在页面加载时不会在浏览器中呈现。