jQuery slideToggle菜单在打开/关闭自身之前折叠兄弟菜单

时间:2013-02-09 09:29:06

标签: javascript jquery algorithm

以下是我正在处理的内容的粗略示例:http://jsfiddle.net/dX2ux/1/

客户内部开发的CMS使用此HTML结构动态创建菜单。它还附带了示例中显示的jQuery脚本。

我想编辑脚本,以便在它自动打开之前关闭它的兄弟的打开菜单。必须切换show类。

到目前为止,我已经提出了这个问题:http://jsfiddle.net/dX2ux/2/

但是如果你玩它,当​​你点击其中一个子菜单时会搞砸。

任何人都可以阐明我如何实现我的目标吗?另外,这是最好的方法吗?我是否想过这个?

感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:3)

不确定这是否是“最佳”方式本身,但使用这种标记,此解决方案应该有效:

$('.toggle-menu').on('click',function(e){
    e.preventDefault();
    $(this).parent().siblings().children('.toggle-menu').removeClass('show').next().slideUp();
    $(this).toggleClass('show').next().slideToggle();
});

编辑你的小提琴以显示效果:http://jsfiddle.net/dX2ux/3/