2016-12-09 61 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