mmenu:一次只展开一个子菜单(slidingSubmenus:false)

mmenu: expand only one submenu at a time (slidingSubmenus: false)

我喜欢在我的 Web 项目中使用 mmenu: http://mmenu.frebsite.nl/。我应该设置 slidingSubmenus: false 但为了保存垂直 space,我应该自动折叠之前展开的子菜单,如果展开了一个新的子菜单——即当时只展开一个子菜单。 这些是客户的要求。

请看这个例子:http://plnkr.co/edit/O2CCBYuXtxnHH7wbdqMa?p=preview [1]

如果我们展开关于我们,那么关于我们2,应该收起第一个。

是否可以使用本机设置或使用简单的技巧?
我也找到了 ,但我希望有一个更简洁的解决方案
- 巴德拉

[1] 感谢 ankoehnhttps://whosebug.com/users/5174279/ankoehn) for his answer (这是我的 plunker 的基础 - 我还需要 AngularJS 的解决方案)。

由于您使用的是 jQuery,您可以添加一些 jQuery 来执行此操作:

jQuery(document).ready(function(){
 $('.mm-next').click(function(){
   var myMenu = $(this).closest('.mm-vertical');
   $('.mm-vertical').not(myMenu).removeClass('mm-opened');
  })
})

更新了 plunker http://plnkr.co/edit/3kr45X8fPnGMo64wXc7j?p=preview

这只是将已打开的 class 从当前打开的项目以外的项目中删除。

此修正案允许在任何级别一次只打开一个子菜单。

$('.mm-next').click(function(){
  var myMenu = $(this).closest('.mm-vertical');
  myMenu.parent().children('.mm-vertical').not(myMenu).removeClass('mm-opened');
})

http://plnkr.co/edit/axlVAHBb38boNMoqxJ1D?p=preview (我的第一个 plnkr 和 SO 回答,希望它有用:)