为什么jQuery在设置为display:none时仍会检测到元素是否可见?

时间:2013-04-14 11:55:41

标签: jquery

我正在使用jQuery循环遍历sortable列表并检测可见的每个list项。

元素在页面加载时从数据库查询添加到列表中。它们是使用.hide()隐藏的。 可以使用.show()从按钮将它们设置为可见,以将它们“添加”到列表中。

我想提取列表状态,通过检测哪些是可见的,对用户可见。

当我使用:visible选择器时,设置为display:none的项目仍然被选中。根据{{​​1}}文档,只有在页面占用空间时才会检测到这些内容,而这些内容不会占用空间。

FIDDLE here, item 5 is set as display:none

建设性的批评,而不是赞成。

1 个答案:

答案 0 :(得分:4)

由于答案很小,这基本上就是Rob W所建议的:

//On button Click
$(".updateDetailsButton").click(function () {
    //Loop through each visible item in the sortable list
    $("#sortable li:visible").each(function(index) {
         // ...
    });
});