2016-09-06 19 views
0

私はこの偉大なを使用していますaccordion &それはうまくいきます。クリックしたアイテムにアクティブなクラスを追加しましたが、アクティブなクラスが2回目にクリックされた場合は削除する方法が見つかりません。私はいくつかの場所でそれを追加しようとしました、また、私は任意のクラスを削除することができますが、別のクリックイベントを追加アクティブ。2回目のクリックでアクティブクラスを削除する(jQuery)

var headers = ["H1","H2","H3","H4","H5","H6"]; 

$(".accordion").click(function(e) { 


var target = e.target, 
name = target.nodeName.toUpperCase(); 

$(target).addClass('active'); 
$(target).siblings().removeClass('active'); 


if($.inArray(name,headers) > -1) { 
     var subItem = $(target).next(); 

     //slideUp all elements (except target) at current depth or greater 
     var depth = $(subItem).parents().length; 
     var allAtDepth = $(".accordion p, .accordion div").filter(function() { 
      if($(this).parents().length >= depth && this !== subItem.get(0)) { 
      return true; 
      } 

     }); 

     $(allAtDepth).slideUp("fast"); 

     //slideToggle target content and adjust bottom border if necessary 
     subItem.toggleClass('active').slideToggle("fast",function() { 
      $(".accordion :visible:last").css("border-radius","0"); 
     }); 
     $(target).css({"border-bottom-right-radius":"0", "border-bottom-left-radius":"0"}); 

} 
}); 
+0

クラスを切り替える... – epascarello

+0

今、私はかなり馬鹿だと感じます。ありがとう – cdb

答えて

0

最初のaddClassをtoggleClassに変更するだけで、私の問題が修正されます。

関連する問題