JQuery - 如何确定dom元素是否“隐藏”?

时间:2016-01-06 14:50:49

标签: javascript jquery

所以我有一些逻辑依赖于JQuery的element.width()方法。有时我的逻辑失败了。我注意到它只是在隐藏元素时才会失败(在bootstrap可折叠元素中)。我查看了文档,他们说:

  

.width()报告的值不能保证准确   隐藏元素或其父元素。要获得准确的值,请确保   在使用.width()之前,元素是可见的。 jQuery将尝试   暂时显示然后重新隐藏元素以测量它   尺寸,但这是不可靠的(即使是准确的)可以   显着影响页面性能。这个展示和重新隐藏   测量功能可能会在未来的jQuery版本中删除。

所以我知道我的问题。我的计划是检查元素是否“隐藏”,如果是,则不会立即执行逻辑,而是搜索可折叠父级并将逻辑订阅到shown.bs.collapse事件。

我的问题是如何检查元素是否被JQuery的宽度方法视为“隐藏”(如文档中所述)。它是如此简单:

element[0].style.display == "none"

我想要一张能够捕捉所有案件的支票。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我相信jQuery使用这个逻辑:

$(element).is(":visible")