Firefox控制台返回'隐藏'为此:
jQuery(".popup:visible").css('visibility')
为什么?如果元素被隐藏,为什么jQuery(" .popup:visible")会选择这个元素?我想用这个条件:
if(jQuery(".popup:visible").size() == 0)
但出于第一个原因,这并没有正常工作。
答案 0 :(得分:1)
CSS visibility
属性与CSS display
属性不同。可见性为visible
或hidden
。如果它被隐藏了,那么你就无法在页面上看到它但它仍然存在并占据整个高度/宽度。 display:none
将其删除。 jQuery正在检查显示属性。
答案 1 :(得分:1)
根据此http://api.jquery.com/visible-selector/
如果元素占用文档中的空间,则认为元素是可见的。可见元素的宽度或高度大于零。
具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍占用布局中的空间。
文档中没有的元素被视为隐藏; jQuery没有办法知道它们在附加到文档时是否可见,因为它取决于适用的样式。
所以我猜测你的弹出窗口设置了宽度或高度,这就是条件不起作用的原因。
无论如何我都会使用display:none;
作为弹出窗口,因为具有该属性的元素在页面加载时不会在浏览器中呈现。