首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mmenu关闭所有子菜单并返回顶层默认状态

问mmenu关闭所有子菜单并返回顶层默认状态
EN

Stack Overflow用户
提问于 2015-11-10 04:29:22
回答 2查看 946关注 0票数 1

我使用的是mmenu JQuery插件(http://mmenu.frebsite.nl/)

我能够浏览菜单、打开菜单、关闭菜单等。

但是,当菜单关闭时,我想要做的是重置菜单-这样每次打开并触发侧边菜单时,它都将从默认状态开始。

我的菜单被设置为默认状态,带有画布外行为和滑动子菜单。

当菜单关闭时,我可以得到一个回调:

代码语言:javascript
复制
var api = $("#menu").data( "mmenu" );
api.bind( "closed", function() {
alert("menu closed");
});

我找到了其他的建议来做:

代码语言:javascript
复制
api.closeAllPanels();

或者:

代码语言:javascript
复制
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

有没有人在每次触发菜单时都能让菜单返回到默认状态?

EN

回答 2

Stack Overflow用户

发布于 2015-11-11 03:00:43

将两者结合起来应该是可行的:

代码语言:javascript
复制
var api = $("#menu").data( "mmenu" );
api.bind( "closed", function() {
    api.closeAllPanels();
});
票数 2
EN

Stack Overflow用户

发布于 2017-10-13 03:42:21

我可以通过在我的菜单中添加一个javascript函数来解决这个问题,它使我的菜单能够导航到home级别(#mm-1)。它还允许您通过将相对链接作为参数传递来打开任何面板。请看下面的代码:

HTML

代码语言:javascript
复制
            <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

代码语言: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();
            }

希望这能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33617684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档