JQuery:可见过滤器

时间:2012-02-14 04:52:12

标签: jquery visible

我正在尝试实现自己的标签,但在某些情况下,:可见选择器似乎无法正常工作:

http://jsfiddle.net/TtCLQ/1/

简而言之,当div只包含输入类型“image”或“file”时,看起来:无论是否实际可见,visible始终返回false。 (在最新的Chrome和IE9上测试过。)

这是一个错误,还是我期待错误的行为?我应该做什么来检测是否正在显示div(及其子节点)?

(在小提琴中,你可以看到:当你切换标签时,通过查看firebug中tab3的样式,可见过滤器似乎不起作用。)

2 个答案:

答案 0 :(得分:3)

#pane div选择#pane中的所有div并将它们设置为displaY:none因此窗格内div内的div也是不可见的。当你将#tab3设置为show时,你没有在里面显示div,因此问题就出现了。即#tab3变得可见,但#tab3> div不可见。我用

更新了小提琴
#pane>div
{ 
display:none;
}

这只选择直接子div而不是这些div中的div。另一种方法是向选项卡添加一个类(.tab) 并集体设置其可见性

答案 1 :(得分:1)

children()仅返回直接子节点,因此tab div下的div保持隐藏状态。

我通过删除不需要的循环等使代码变得更小:

http://jsfiddle.net/TtCLQ/6/