2017-07-12 2 views
0

Ich brauche das Untermenü, das geöffnet werden soll, wenn das Kind aktiv ist (wie wenn der Benutzer auf dieser Seite ist). Dazu bereits verwaltet:Verhindern, dass Bootstrap-Dropdown geschlossen wird, wenn irgendwo anders als der Menüeintrag geklickt wird

// To open active submenu on load 
jQuery('.keep-open').find('.current-menu-item').closest('.current-menu-parent').children('.dropdown-toggle').trigger('click'); 

Aber wenn Sie irgendwo klicken, wird das Menü geschlossen. Es muss geöffnet bleiben, es sei denn, es wird ausdrücklich darauf geklickt. Nur gelang es vor der Schließung zu verhindern, wenn von außen mit diesem Link angeklickt:

// To prevent submenu from being closed on outside click 
jQuery('.current-menu-parent').on('hide.bs.dropdown', function() { 
    return false; 
}); 

Aber natürlich scheint dies verhindert, dass es zu schließen auch selbst dann, wenn das Menü selbst angeklickt wird. Wie kann ich festlegen, dass es nur geschlossen wird, wenn auf diesen Menüeintrag geklickt wird?

Die nächste Referenz, die ich fand, war aber this und this aber bis jetzt kann noch nicht bekommen, wie man es macht. Dies ist auf einem WordPress-Website-Menü über wp_bootstrap_navwalker.

Jsfiddle here

Antwort

0

Wenn Sie nur zu schließen, wenn das Menü hinzufügen geklickt wird nur diesen Code

// Hide dropdown when click menu 
jQuery('.current-menu-parent').bind('click', function() { 
     $(this).find('ul').fadeOut(); 
}); 

Demo here

Oder Sie wollen wieder den Menüpunkt zeigen, wenn Dieses Menü wird angeklickt:

// toggle dropdown when click menu 
jQuery('.current-menu-parent').bind('click', function() { 
     $(this).find('ul').fadeToggle(); 
}); 

Demo here

+0

Vielen Dank! Benutzt stattdessen '.toggle()', um das ursprüngliche Verhalten beizubehalten. – Suika

Verwandte Themen