2015-11-03 133 views
1

我喜欢在我的Web项目中使用mmenu:http://mmenu.frebsite.nl/。我应该设置slidingSubmenus: false,但为了节省垂直空间,如果扩展了新的子菜单,我应该自动折叠先前的扩展子菜单 - 即当时只有一个子菜单被扩展。 这些是客户的要求。mmenu:一次只展开一个子菜单(slidingSubmenus:false)

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

如果我们扩大关于我们,然后关于我们2,第一个应该被折叠。

这是可能的使用本机设置或简单的把戏?
我还发现How to toggle the vertical jQuery.mmenu submenus?,但我希望有一个更清洁的解决方案
- badera

[1] 由于ankoehnhttps://stackoverflow.com/users/5174279/ankoehn)他的回答https://stackoverflow.com/a/31727879/4106030(这是我plunker的基础 - 我还需要AngularJS的解决方案)。

回答

1

由于您使用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

这仅仅去除比你已经打开了当前其他项目打开类。

+0

谢谢你,狮子座!这很棒。我发现我需要研究一些关于jQuery的基础知识...... - 如果我们有子子菜单 - 我们不能再打开第三级 - 但是,我认为有了更多的jQuery知识,将能够解决这个问题。 – badera

2

该修正案只允许在任何级别打开一个单独的子菜单。

$('.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回答,希望工程:)

+0

感谢Dom。如果你还添加更新的plunker(或jsfiddle或者以往),我会将你的答案设置为接受。 – badera

相关问题