0

我用 mmenu ( http://mmenu.frebsite.nl/ ) 构建了一个自定义菜单。根据文档,任何指向页面本身的链接 - 例如<a href="#anchor">Close Menu</a>将触发关闭功能。但是,一旦您的菜单包含除无序列表之外的任何内容(例如 div、文本等),此功能就会停止工作。就像菜单的 ul/li 自动样式化成漂亮的菜单一样。基本上 mmenu 说“哎呀,除了 ul/lis 之外的东西——我正在抛弃我的默认行为”。

在页面区域内单击仍然可以关闭菜单。只有菜单本身内的“关闭菜单”链接不起作用。同样,删除所有非 ul/li 内容会导致链接再次开始工作。

任何人都有使用此插件的经验并且知道如何使此功能正常工作吗?

4

3 回答 3

0

mmenu 插件有一个选项“isMenu”,用于确定是否添加特定于菜单的样式和功能。如果省略,插件将尝试自动检测此选项。基本上,如果您的菜单(NAV)仅包含一个子节点并且该子节点是 UL,则插件会将“isMenu”选项设置为 true;

尝试手动添加选项:

$("#foo").mmenu({
    isMenu: true
});

要手动关闭菜单,请触发“关闭”自定义事件。下载包中包含的教程解释了如何执行此操作。

于 2013-10-14T11:29:41.823 回答
0

我使用了这种方法,效果很好:

$('#manualCloseBTN').bind('click', function() { $('#openedPage').trigger('close'); });

我花了几个小时寻找替代方案,但这是关闭页面的最佳方式。

于 2014-01-26T06:13:36.213 回答
0

您可以编写自己的插件并在启动菜单时加载它。

在附加组件中,您可以将事件侦听器绑定到调用 close() 函数的“关闭”按钮:

(function( $ ) {

    var _PLUGIN_ = 'mmenu',
        _ADDON_  = 'myAddon';


    $[ _PLUGIN_ ].addons[ _ADDON_ ] = {

        // ...

        setup: function() {
            var that = this;

            $('#closeButton').on('click', function(){
                that.close();
            })

        },

        // ...
    };

    // ...

});

如果您需要更多信息,只需查看现有的附加组件和官方网站...

于 2015-11-23T14:33:08.773 回答