-1

私のページには、基本的な切り替えにこのjqueryコードを使用する簡単なメニューがあります。

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

UL はデフォルトで開いている (display:block via CSS) ため、最初のクリックで UL は非表示になります (これで問題ありません)。ただし、閉じたばかりのメニューに「アクティブ」クラスも追加されます! 技術的には正しいことは理解していますが、望ましい結果ではありません。

メニューが既に開いているときに X を実行し、反対のときに Y を実行するように、コードで何を変更すればよいでしょうか。

ありがとう!

4

1 に答える 1

1

.toggle をお探しですか?

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

したがって、最初にクリックすると X が実行され、代わりに Y が実行されます。

于 2009-09-27T06:51:41.980 に答える