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