Question

J'ai un menu simple sur ma page, qui utilise ce code jquery pour base basculement:

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

L'UL est ouvert (display: block via CSS) par défaut, le premier clic, les peaux UL (qui est très bien), mais il ajoute également la classe « active » à un menu qui vient de fermer! Je comprends sa technique correcte, mais pas le résultat souhaité.

Que dois-je changer dans le code il fait X lorsque le menu est déjà ouvert et Y en face.

Merci!

Était-ce utile?

La solution

Peut-être que vous cherchez .toggle?

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

d'abord sur X cliquez dessus ne, en variante, il fait Y.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top