質問

私は基本的なトグルのために、このjqueryのコードを使用して、私のページ、上の簡単なメニューをしました。

$("#left-nav .block h3").click(function(){
  $(this).next("ul").slideToggle("fast");
  $(this).toggleClass("active");
  $(this).siblings("h3").removeClass("active");
});
ので、最初のクリックで、デフォルトでは(結構です)ULの皮が、それはまた、単に閉じメニューに「アクティブ」クラスを追加します。

ULは、(CSSを経由してブロック表示)が開いています!私は、その技術的に正しい理解が、それはない望ましい結果。

それは何のメニューが既に開いているとき、Xを行い、Yので、私はコードに変更を行う際に、反対ます。

ありがとうございます。

役に立ちましたか?

解決

たぶん、あなたは.toggleを探している?

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

だから、初めにそれがXをする]をクリックし、代わりにそれはYを行います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top