javascript - 如何重用整个 mmenu 实例
问题描述
我有这个 mmenu 实例,我在其中动态添加来自 ajax 的内容,正如插件页面上所述。
现在我不仅想动态添加子关卡,我还想丢弃所有关卡并为现有的 mmenu 实例添加一个新的第一关。
我试过调用API.initPanels($("#mm-0"))
,我试过在再次初始化 mmenu 插件之前从 mmenu 添加的 DOM 元素中删除所有类,但它不会呈现正确的菜单。我添加的 UL 和 LI 保持不变。
解决方案
明白了,方法如下:
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初始化所有面板
推荐阅读
- sql-server - 使用 T-SQL 在 Linux 上获取 sql server 默认备份文件夹
- reactjs - 将调度操作导入 React 组件辅助
- wso2 - 请任何人描述 NO_ENTITY_BODY 的使用
- google-api - `relevanceLanguage` 参数的真正作用是什么?
- sql-server - 在 Airflow 中运行存储过程
- laravel - 如何在每次页面加载时执行代码,但只有在路由控制器执行之后?
- python - Python。如何将我自己的数据集导入“k 均值”算法
- java - 如何将 POJO 转换为 Map
发电机分贝? - php - PHP数组如何检查其他数组中是否存在所有数组值
- javascript - 带百分比的虚线圆形条