我一直在开发一个单页应用程序,并注意到我的下拉有时会在他们想要被隐藏时保持打开状态。我调查了为什么会发生这种情况,并发现如果隐藏了父元素,使用扩展的hide
函数隐藏带有jQuery UI的元素是没有价值的。
此fiddle示例显示了我的意思,只需点击Hide
& Show
按钮,然后点击Show parent1
并尝试隐藏元素。您会注意到状态指示器会立即更新,但一旦您返回parent2
,您就会看到该元素仍然可见。
我发现使用没有参数的jQuery hide
或只传递了几毫秒,它确实正常工作,一旦我用jQuery UI参数更新它就停止工作,所以我认为它是jQuery UI而不是jQuery本身的问题。 / p>
所以我的问题是为什么jQuery UI以这种方式工作,它是假设工作的方式还是错误?
答案 0 :(得分:0)
我认为它的工作方式。在这种情况下,当您返回到parent2
行上的$('#parent2').show();
时,它默认显示所有子元素。这就是show()
在{{1}内的所有元素上迭代}。虽然这看起来很麻烦,但在JSFiddle中有一种解决方法,它是你的修改版本。
答案 1 :(得分:0)
这是jQuery UI中的一个错误,已在1.10.2中修复。
这是bug报告单的链接 http://bugs.jqueryui.com/ticket/9120