如何重用整个mmenu实例

时间:2018-06-06 06:38:50

标签: javascript jquery mmenu

我有这个mmenu实例,我在动画中添加来自ajax的内容,就像在插件页面上所描述的那样。

现在我不仅想动态添加子级别,我想抛弃所有级别并为现有的mmenu实例添加新的第一级。

我试过调用API.initPanels($("#mm-0")),我尝试从mmenu添加的DOM元素中删除所有类,然后再次初始化mmenu插件,但它不会呈现正确的菜单。我添加的UL和LI保持不变。

1 个答案:

答案 0 :(得分:0)

知道了,方法如下:

API.closeAllPanels();
var mmenuActual = API.getInstance();
var $panels = mmenuActual.$pnls.children();
var $updateContainer = $panels.first().find(".mm-listview");

$updateContainer.replaceWith(newContent);
$panels.not(":first").remove();
API.initPanels($panels);

首先,我们需要关闭所有面板,将 mmenu 设置回初始状态,只显示顶层。

接下来,我们需要抓住所有面板和第一个面板的.mm-listview,因为这是 mmenu 渲染第一个面板的位置。

然后我们用新内容更新第一级的源代码。如果您更新该元素的innerHTML或像我一样交换它,则无关紧要。

其余的面板现在已经过时了,我们把它们扔掉了。

最后,我们告诉 mmenu 初始化所有面板