我目前有mmenu作爲我的移動菜單。我需要能夠在關閉時將菜單重置爲第一級。截至目前,在關閉菜單並重新打開菜單後,默認功能會讓我在離開時更加深入地進入子級別。jquery mmenu - 將菜單重置爲主關閉
我非常感謝這件事的幫助。
謝謝!
我目前有mmenu作爲我的移動菜單。我需要能夠在關閉時將菜單重置爲第一級。截至目前,在關閉菜單並重新打開菜單後,默認功能會讓我在離開時更加深入地進入子級別。jquery mmenu - 將菜單重置爲主關閉
我非常感謝這件事的幫助。
謝謝!
您可以使用「關閉」回調事件關閉所有打開的面板。
當您使用水平子菜單(默認設置)時,這樣做的訣竅是打開第一個面板(「主」級菜單)。
$("#menu").mmenu();
$("#menu").on("closed", function() {
$("#menu .mm-panel").first().trigger("open.mm");
});
你可以嘗試破解lib本身。
例如:
a。找到這個代碼(大約#374):
this.__transitionend(a.$page.first(), function() {
b。右上面的代碼後,你可以插入這樣的事情:
var jid = t.$menu.attr('id'); $('#' + jid + ' .mm-panels').fadeOut('fast', function(){ $(this).children().removeClass('mm-opened mm-subopened mm-hidden mm-current mm-highest'); $('#' + jid + ' .mm-panels :first-child').addClass('mm-opened mm-current'); }).fadeIn('fast');
解釋:
原始MM碼(一個你正在尋找)面板上的火災被關閉,不管如何,或者爲什麼正在關閉。
剛剛粘貼的代碼,重新安排mmenu引擎使用的類來更改mmenu狀態。
要使所有轉變爲更順利發生,面板(例如,如果您使用iconbar擴展名)的可見部分淡出,並在菜單面板主要iconbar是衰落的重新定位後。
弗雷德的答案適用於Mmenu的早期版本,但如果您使用的是最新版本(最新的在這個被張貼的時間爲5.6.1),您可以使用API方法如下所示:
var api = $("#menu").data("mmenu");
api.bind("closed", function() {
api.closeAllPanels();
});
試試這在任何菜單上點擊:
$(".mm-subclose").trigger('click');
Trigger()是一個JQuery函數。當我們點擊子菜單頂部的後退箭頭時。子菜單隱藏。所以當我們使用「.mm-subclose」類後退箭頭時,Menu會重置爲主級別。
請解釋你的回答 – Mazz
「.mm-subclose」是mm-menu後退箭頭的類別。當我們點擊後退箭頭時,菜單將重置爲主級別。因此,點擊子菜單上添加此代碼。 –
我能夠通過在我的菜單中添加一個javascript函數來解決此問題,該函數可以導航到家庭級別(#mm-1)。它還允許您通過將相關鏈接作爲參數傳遞來打開任何面板。請看看下面的代碼:
HTML
<div class="mh-head navbar-fixed-top">
<span class="mh-btns-left"><a class="fa fa-bars"
onclick="openSubmenu('#mm-1')"></a></span>
</div>
的Javascript
function openSubmenu(submenu) {
instantiateComponents(submenu);
openDesiredSubmenu();
}
function instantiateComponents(submenu) {
instantiateCurrentMenu();
instantiateApi();
instantiateDesiredSubmenu(submenu);
}
function instantiateCurrentMenu() {
currentMenu = $('#menu');
currentMenu.mmenu({});
}
function instantiateApi() {
menuApi = currentMenu.data('mmenu');
}
function instantiateDesiredSubmenu(submenu) {
desiredSubmenu = currentMenu.find(submenu);
}
function openDesiredSubmenu() {
menuApi.openPanel(desiredSubmenu.closest('.mm-panel'));
menuApi.open();
}
希望這是有幫助的。
請不要發佈[相同的答案](http://stackoverflow.com/a/46717655)多個問題。發佈一個很好的答案,然後投票/標記以重複關閉其他問題。如果問題不是重複的,*定製你對問題的回答。* –
@Paul Roub,會的,謝謝你的提升。 – dolmetscher
這不起作用。你從哪裏得到的?mm面板和open.mm類? – MIke