2015-11-03 58 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