2016-12-14 7 views
0
$(".cus-nav .navbar-nav > li").click(function(){ 
    $(this).find(".mega-menu").slideToggle("fast"); 
}); 

Wenn ich auf li klicke, wird das Mega-Menü mit Toggle geöffnet. Wenn ich auf einen anderen Link klicke, öffnet sich das Mega-Menü. Aber das erste Mega-Menü ist noch offen. Ich möchte also, wenn ich nur ein Mega-Menü gleichzeitig zeige.Beim Klicken zeigen Sie nacheinander

Antwort

1

Können Sie nicht einfach alle Mega-Menüs ausblenden, bevor Sie die gewünschte anzeigen?

$(".cus-nav .navbar-nav > li").click(function(){ 
    $(".mega-menu").hide(); 
    $(this).find(".mega-menu").slideToggle("fast"); 
}); 

wenn Sie brauchen nur das eine animieren, die geöffnet wird geschlossen, dann könnten Sie eine Klasse hinzufügen, wenn es zu öffnen, so dass Sie es später noch einmal

$(document).ready(function() { 
    $(".navbar-bar > li").click(function() { 
     var $showMenu = $(this).find(".mega-menu"); 
     var openMenu = !$showMenu.hasClass("opened"); 

     var $closeMenu = $(".mega-menu").filter(".opened"); 
     $closeMenu.removeClass("opened"); 
     $closeMenu.slideToggle("fast"); 

     if(openMenu){ 
      $showMenu.addClass("opened"); 
      $showMenu.slideToggle("fast"); 
     };  
    }); 
}); 
+0

Ja geöffnet einer nach dem anderen finden können, aber wechseln nicht Arbeiten. Es schließt nicht. –

+0

Verwenden Sie diesen Code und welche CSS muss für welche Klasse schreiben? –

+0

Hier ist ein funktionierendes Beispiel https://jsfiddle.net/mv8LkL0v/1/ – BenBlanch

Verwandte Themen