我一直在开发一个单页应用程序,并注意到我的下拉菜单有时在本应隐藏的情况下保持打开状态。我调查了发生这种情况的原因,并发现如果父元素被隐藏,则使用扩展 hide
函数通过 jQuery UI 隐藏元素是毫无值(value)的。
这个fiddle例如,它显示了我的意思,只需尝试单击隐藏
和显示
按钮,然后单击显示parent1
并尝试在那里隐藏元素。您会注意到状态指示器会立即更新,但一旦您返回到 parent2
,您将看到该元素仍然可见。
我发现使用不带参数或仅传递毫秒的 jQuery hide
,它确实可以正常工作,并且在我使用 jQuery UI 参数更新它后停止工作,所以我假设它是 jQuery UI 而不是 jQuery 本身问题。
所以我的问题是为什么 jQuery UI 以这种方式工作,这是它应该工作的方式还是一个错误?
最佳答案
我认为这就是它应该工作的方式。在这种情况下,当您返回到 $('#parent2').show();
行上的 parent2
时,它默认也会显示所有子元素。是 show()
在 parent2
内的所有元素上迭代。虽然这看起来很麻烦,但在这个JSFiddle中有一种解决方法。这是你的修改版本。
关于jquery - 为什么 jQuery UI 不隐藏具有隐藏父元素的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15044516/