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 № 1La 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.