为什么jQuery UI不隐藏隐藏父元素的元素?

时间:2013-02-23 19:15:10

标签: jquery jquery-ui

我一直在开发一个单页应用程序,并注意到我的下拉有时会在他们想要被隐藏时保持打开状态。我调查了为什么会发生这种情况,并发现如果隐藏了父元素,使用扩展的hide函数隐藏带有jQuery UI的元素是没有价值的。

fiddle示例显示了我的意思,只需点击Hide& Show按钮,然后点击Show parent1并尝试隐藏元素。您会注意到状态指示器会立即更新,但一旦您返回parent2,您就会看到该元素仍然可见。

我发现使用没有参数的jQuery hide或只传递了几毫秒,它确实正常工作,一旦我用jQuery UI参数更新它就停止工作,所以我认为它是jQuery UI而不是jQuery本身的问题。 / p>

所以我的问题是为什么jQuery UI以这种方式工作,它是假设工作的方式还是错误?

2 个答案:

答案 0 :(得分:0)

我认为它的工作方式。在这种情况下,当您返回到parent2行上的$('#parent2').show();时,它默认显示所有子元素。这就是show()在{{1}内的所有元素上迭代}。虽然这看起来很麻烦,但在JSFiddle中有一种解决方法,它是你的修改版本。

答案 1 :(得分:0)

这是jQuery UI中的一个错误,已在1.10.2中修复。

这是bug报告单的链接 http://bugs.jqueryui.com/ticket/9120