1

私はアコーディオンを作るためのスクリプトを私に石畳にしました。今、私は次の問題を抱えています.アクティブな要素は.click(function()でクラス「.active」になりましたが、アクティブな要素をもう一度クリックしてもクラスは削除されません.私は多くの解決策を試して読んだ.次のような質問:質問 1ですが、何も機能しません...

ここで私のコードのフィドルを見つけることができます:

$(function() {
   $("a.dropdown-link").click(function() {
      $("a.dropdown-link").removeClass("active");
      $(this).addClass("active");
      return false;
   });
});  

JSフィドル

ご不明な点がございましたら、お知らせください。

4

4 に答える 4

1

クリックした要素に既にactiveクラスがあるかどうかを確認して削除する必要があります。そうでない場合は、追加する必要があります。これを試して:

$("a.dropdown-link").click(function (e) {
    e.preventDefault();
    var func = $(this).hasClass('active') ? 'removeClass' : 'addClass';
    $("a.dropdown-link").removeClass("active");
    $(this)[func]("active");
});

フィドルの例

于 2013-11-07T12:12:58.800 に答える
-1

削除して追加する代わりに、toggleClass を使用するだけでよいのではないでしょうか。

$(function() {
 $("a.dropdown-link").click(function() {
        $(this).toggleClass("active");
    return false;
  });
});  

それを修正するようです。

于 2013-11-07T12:13:37.880 に答える