/ / mmenu chiudere tutti i sottomenu e tornare allo stato predefinito di livello superiore - jquery, mmenu

mmenu chiudere tutti i sottomenu e tornare allo stato predefinito di livello superiore - jquery, mmenu

Sto usando il plugin mmenu JQuery (http://mmenu.frebsite.nl/)

Sono in grado di navigare attraverso il menu, aprire il menu, chiudere il menu, ecc.

Quello che voglio fare, però, quando il menu è chiuso, è quello di ripristinare il menu - in modo che ogni volta che il menu laterale viene aperto e attivato, verrà sempre avviato dallo stato predefinito.

Il mio menu è impostato come stato predefinito, con comportamento offcanvas e sottomenu di scorrimento.

Sono in grado di ottenere una richiamata quando il menu è chiuso:

var api = $("#menu").data( "mmenu" );
api.bind( "closed", function() {
alert("menu closed");
});

Ho trovato altri suggerimenti da fare:

api.closeAllPanels();

o:

api.closeAllSubmenus();

Ma nessuno di questi lavori.

Ho anche provato i potenziali metodi dai seguenti link:

https://github.com/BeSite/jQuery.mmenu/issues/237

Jquery mmenu - Ripristina il menu al livello principale alla chiusura

https://www.drupal.org/node/2352421

Qualcuno è riuscito a ottenere il menu per tornare allo stato predefinito ogni volta che viene attivato il menu?

risposte:

0 per risposta № 1

La combinazione dei due dovrebbe funzionare:

var api = $("#menu").data( "mmenu" );
api.bind( "closed", function() {
api.closeAllPanels();
});

0 per risposta № 2

Sono stato in grado di risolvere questo problema aggiungendo un javascriptfunzione al mio menu, che consente di navigare fino al livello di casa (# mm-1). Permette anche di aprire qualsiasi pannello passando il collegamento relativo come parametro. Si prega di dare un'occhiata al seguente codice:

HTML

            <div class="mh-head navbar-fixed-top">
<span class="mh-btns-left"><a class="fa fa-bars"
onclick="openSubmenu("#mm-1")"></a></span>
</div>

Javascript

            function openSubmenu(submenu) {
instantiateComponents(submenu);
openDesiredSubmenu();
}

function instantiateComponents(submenu) {
instantiateCurrentMenu();
instantiateApi();
instantiateDesiredSubmenu(submenu);
}

function instantiateCurrentMenu() {
currentMenu = $("#menu");
currentMenu.mmenu({});
}

function instantiateApi() {
menuApi = currentMenu.data("mmenu");
}

function instantiateDesiredSubmenu(submenu) {
desiredSubmenu = currentMenu.find(submenu);
}

function openDesiredSubmenu() {
menuApi.openPanel(desiredSubmenu.closest(".mm-panel"));
menuApi.open();
}

Spero che questo sia utile.