2

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

这个小提琴示例说明了我的意思,只需尝试单击Hide&Show按钮,然后单击Show parent1并尝试在此处隐藏元素。您会注意到状态指示器会立即更新,但是一旦您返回,parent2您会看到该元素仍然可见。

我发现使用hide不带参数或仅传递毫秒的 jQuery,它确实可以正常工作,并且一旦我使用 jQuery UI 参数更新它就会停止工作,所以我认为这是 jQuery UI 而不是 jQuery 本身的问题。

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

4

2 回答 2

0

我认为这是它应该工作的方式。在这种情况下,当您返回parent2该行时$('#parent2').show();,默认情况下它也会显示所有子元素。那是对show()里面的所有元素进行迭代parent2。虽然这看起来很麻烦,但在这个JSFiddle中有一种解决方法,它是你的修改版本。

于 2013-02-25T10:45:47.587 回答
0

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

这是错误报告票的链接 http://bugs.jqueryui.com/ticket/9120

于 2013-02-27T20:00:32.587 回答