jQuery幻灯片切换,关闭手风琴类型的其他地方?

时间:2016-12-09 13:10:29

标签: jquery accordion slidetoggle

我为手风琴式菜单设置了一个简单的幻灯片切换。

如果li包含课程.menu-item-has-children,则点击将滑动.sub-menu内的li

  $(".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的课程,它会关闭我之前打开的课程,打开我刚刚点击的课程。

所以基本上是一个手风琴,在打开新手风琴之前关闭一个已经折叠/打开的手风琴。但这些可能会出现在页面的其他位置,例如,不会出现相同的列表。

1 个答案:

答案 0 :(得分: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();
});