第二次单击时删除活动类(jQuery)

时间:2016-09-06 11:54:25

标签: jquery

我正在使用这个伟大的accordion&它运作良好。我已经为点击的项目添加了一个活动类,但如果第二次单击它,我找不到删除活动类的方法。我已经尝试在很多地方添加它,还添加了一个单独的点击事件,它允许我删除任何类但是活动。

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"});

 }
});

1 个答案:

答案 0 :(得分:0)

只需将第一个addClass更改为toggleClass即可解决我的问题。