2016-12-09 63 views
2

我有一个简单的滑动切换手风琴类型的菜单。jQuery滑动切换,关闭其他手风琴类型?

如果li有类.menu-item-has-children然后单击就会滑开驻留内li.sub-menu

$(".menu-item-has-children").unbind('click').click(function(){  
     $(".menu-item-has-children > a").toggleClass("sub-open"); 
     $(this).children(".sub-menu").slideToggle(); 
    }); 

如何使它,如果点击与menu-item-has-children另一个类,它关闭了一个我以前打开过的,打开了我刚才点击过的那个。

因此,本质上是一个手风琴,它关闭了一个在开启新手风琴前已经关闭/打开的手风琴。但是这些可能会出现在页面的其他地方,例如不在同一个列表中。

+0

你到目前为止试过的是什么?添加你的工作小提琴可能是 – ScanQR

回答

2

您可以slideUp()其他menu-item元素的子菜单。

$(".menu-item-has-children").unbind('click').click(function(){ 
    //Find other menu items 
    var otherMenuItems = $(".menu-item-has-children").not($(this)); 

    //Find children and perform Slideup sub-menus and remove sub-open class 
    otherMenuItems.children(".sub-menu").slideUp(); 
    otherMenuItems.children("a").removeClass("sub-open"); 

    $(this).children("a").toggleClass("sub-open"); 
    $(this).children(".sub-menu").slideToggle(); 
}); 
+0

非常感谢你,在这里测试.. https://jsfiddle.net/ps70fo4c/他们都开始打开,或者我隐藏它们用css关闭? – user4630

+0

@ user4630,请参阅https://jsfiddle.net/ps70fo4c/1/ – Satpal

+0

谢谢你的帮助:) – user4630