我正在使用mmenu JQuery插件(http://mmenu.frebsite.nl/)
我可以浏览菜单,打开菜单,关闭菜单等等。
但是,当菜单关闭时,我想要做的是重置菜单 - 这样每次打开和触发侧面菜单时,它总是从默认状态开始。
我的菜单设置为默认状态,具有离线扫描行为和滑动子菜单。
我可以在菜单关闭时收到回调:
var api = $("#menu").data( "mmenu" );
api.bind( "closed", function() {
alert("menu closed");
});
我找到了其他建议:
api.closeAllPanels();
或:
api.closeAllSubmenus();
但这些都不起作用。
我也尝试过以下链接中的潜在方法:
https://github.com/BeSite/jQuery.mmenu/issues/237
Jquery mmenu - Reset menu to main level on close
https://www.drupal.org/node/2352421
每次菜单被触发时,是否有人设法让菜单返回默认状态?
答案 0 :(得分:1)
结合这两者应该有效:
var api = $("#menu").data( "mmenu" );
api.bind( "closed", function() {
api.closeAllPanels();
});
答案 1 :(得分: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();
}
希望这有用。