Frage

Ich habe ein einfaches Menü auf meiner Seite, die diesen jQuery-Code für grundlegende Hin- und Herschalten verwendet:

$("#left-nav .block h3").click(function(){
  $(this).next("ul").slideToggle("fast");
  $(this).toggleClass("active");
  $(this).siblings("h3").removeClass("active");
});

Die UL offen ist (Anzeige: Block über CSS) standardmäßig so auf dem ersten Klick, die UL versteckt (das ist in Ordnung), aber es fügt auch die „aktive“ Klasse zu einem Menü, das gerade geschlossen! Ich verstehe seine technisch korrekt, aber es ist nicht das gewünschte Ergebnis.

Was muss ich in den Code zu ändern, so dass es X tut, wenn das Menü bereits geöffnet ist und Y, wenn gegenüber.

Danke!

War es hilfreich?

Lösung

Vielleicht sind Sie auf der Suche nach .toggle?

$("#left-nav .block h3").toggle(function(){
  $(this).next("ul").slideToggle("fast");
}, function() {
  $(this).toggleClass("active");
  $(this).siblings("h3").removeClass("active");
});

Also zunächst auf klicken, um es tut X, alternativ tut es Y.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top