jQuery SlideToggle 嵌套列表 ul li 结构
$("#nav ul li:not(:has(li.current))")
.find("ul").hide().end() // Hide all other ULs
.click(function() {
$(this).children('ul').slideToggle('fast');
});
我有上面的代码,它使用嵌套的 ul li,并在单击时展开级别。不过,我想在第二次单击时收缩级别,但上面的操作会收缩所有级别,而不仅仅是单击的级别。
编辑:例如,请参阅 this
$("#nav ul li:not(:has(li.current))")
.find("ul").hide().end() // Hide all other ULs
.click(function() {
$(this).children('ul').slideToggle('fast');
});
I have the above code that uses a nested ul li, and expands the levels on click. However I'd like to contract the level on a second click, but the above contracts all the levels and not just the one being click on.
Edit: See this for example
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不是 100% 确定您打算做什么,但我认为您可以通过检查事件是否源自处理程序元素来避免不必要的滑动:
jsFiddle
I'm not 100% sure of what you're intending to do, but I think you can avoid the unwanted sliding by checking to see if the event originated on the handler element:
jsFiddle
您可以只使用toggle() 并返回 false 来停止传播:
使用此示例
You can just use toggle() and return false to stop propagation:
Use This Example