我目前有mmenu作为我的手机菜单。我需要能够在关闭时将菜单重置为第一级。截至目前,默认功能使我在关闭菜单并重新打开后更深入到子级别时离开了。
我非常感谢帮助解决这个问题。
谢谢!
答案 0 :(得分:0)
你可以使用"关闭"回调事件以关闭所有打开的面板。
这样做的诀窍 - 当您使用水平子菜单(默认设置)时 - 打开第一个面板("主"级别菜单)。
$("#menu").mmenu();
$("#menu").on( "closed", function() {
$("#menu .mm-panel").first().trigger( "open.mm" );
});
答案 1 :(得分:0)
你可以尝试破解lib本身。
例如:
一个。找到这段代码(约#374):
this.__transitionend(a.$page.first(), function () {
湾在上面的代码之后,你可以插入这样的东西:
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状态。
为了使所有过渡更顺利,面板的可见部分(例如,如果使用图标栏扩展名)淡出,并且在重新定位菜单面板后,主图标栏正在淡入。
答案 2 :(得分:0)
弗雷德的答案适用于以前版本的Mmenu,但如果您使用的是最新版本(最新版本为5.6.1),您可以使用以下API方法:
var api = $("#menu").data( "mmenu" );
api.bind( "closed", function() {
api.closeAllPanels();
});
答案 3 :(得分:0)
在任何菜单上点击:
$(".mm-subclose").trigger('click');
Trigger()是一个JQuery函数。当我们点击子菜单顶部的后退箭头时。子菜单被隐藏。因此,当我们使用“.mm-subclose”后退箭头类时,Menu会重置为主级别。
答案 4 :(得分:0)
我能够通过在我的菜单中添加一个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();
}
希望这有用。