Как повторно использовать весь экземпляр Mmenu - PullRequest
0 голосов
/ 06 июня 2018

У меня есть этот экземпляр mmenu, где я динамически добавляю контент из ajax, как описано на странице плагина.

Теперь я не только хочу динамически добавлять подуровни, я хочу отбросить все уровни и добавить новыйПервый уровень к существующему экземпляру mmenu.

Я пытался вызвать API.initPanels($("#mm-0")), я пытался удалить все классы из элементов DOM, которые были добавлены mmenu, прежде чем снова инициализировать плагин mmenu, но он не будет отображатьсяправильное меню.Добавленные UL и LI остаются нетронутыми.

1 Ответ

0 голосов
/ 07 июня 2018

Понял, вот как:

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 этого элемента или поменяете его местами, как я.

Остальные панели теперь устарели, мы их выбрасываем.

НаконецМы говорим МЕНЮ инициализировать все панели

...