jQuery mmenu 从菜单结构外部打开子菜单

Posted

技术标签:

【中文标题】jQuery mmenu 从菜单结构外部打开子菜单【英文标题】:jQuery mmenu open submenu from outside the menu structure 【发布时间】:2018-09-23 13:15:30 【问题描述】:

我正在尝试找出一种从 mmenu 结构外部触发子菜单的方法。

使用直接引用 mmenu id 的链接打开子菜单不起作用:

<div class="content">
   <a href="#mm-2">Open submenu from here</a>
</div>

http://jsfiddle.net/9FdXv/40/

【问题讨论】:

请尽量在您的帖子中添加尽可能多的信息,以避免依赖外部链接。 【参考方案1】:

将 ID external 或您喜欢的任何内容添加到外部锚点。还要在ul 中添加一个ID,构成您的“80% werken”菜单。 (在这个例子中,我使用了80_sub)。现在将以下内容添加到您的 js 脚本中:

$('#external').click(function(ev) 
    ev.preventDefault(); //Avoid mmenu to get the click and close
    var api = $("#my-menu").data( "mmenu" );
    api.openPanel( $("#80_sub") );
);

我们正在使用API 手动操作菜单。

编辑:Working example based on your fiddle。

【讨论】:

感谢@GSystemGlitch 效果很好,但内容 div 是动态加载的,如果我在内容页面中添加锚点,您的解决方案将不起作用。我应该如何让它发挥作用? 见this question【参考方案2】:

检查这个小提琴动态打开菜单。我已经触发了菜单的用户触发事件。

您可以将菜单的 id 添加为 data-href 在标签中,如下所示

<a href="javascript:void(0);" data-href="#mm-2" class="open-dynamic"><span>Open the submenu "80% werken" from here</span></a>

您可以通过在a标签中添加不同的id来生成所有菜单的外部链接。

以下脚本可用于打开菜单。

 $(document).on("click", ".open-dynamic", function ()                     
                    $(document).find("[href='" + $(this).attr("data-href") + "']").trigger("click");                   
            );

Check This fiddle

【讨论】:

以上是关于jQuery mmenu 从菜单结构外部打开子菜单的主要内容,如果未能解决你的问题,请参考以下文章

ng-repeat 和 Mmenu 子菜单

Jquery mmenu 多个实例

带有 mmenu/sidr 和 Jquery 和 Turbolinks 问题的 Rails

如何在 jQuery mmenu 中更改菜单的标题

jQuery'mmenu'打开时的回调事件

jQuery mmenu 使页面自动跳转到顶部