单击第二次后单击删除添加的类

时间:2016-01-13 15:59:08

标签: javascript jquery

如何在第二次点击后删除priSCW-active

代码需要工作,但是当我第二次点击container时它没有关闭。

我在这里想念的是谁能在这方面帮助我?

DEMO

$(document).ready(function() {
   $("body").on("click", ".container", function(event) {
      event.stopPropagation();
      var ID = $(this).attr("id");
      $(".priSCWrap").removeClass("priSCW-active");
      $("#open" + ID).toggleClass("priSCW-active").siblings().removeClass('priSCW-active');;
   });
   $("body").click(function(){
         $(".priSCWrap").removeClass("priSCW-active");
    });
});

3 个答案:

答案 0 :(得分:2)

$(document).ready(function() {
   var clicked = 0;
   $("body").on("click", ".container", function(event) {
      if (++clicked === 2) {
          // your code
      }
      event.stopPropagation();
      var ID = $(this).attr("id");
      $(".priSCWrap").removeClass("priSCW-active");
      $("#open" + ID).toggleClass("priSCW-active").siblings().removeClass('priSCW-active');
   });
   $("body").click(function(){
         $(".priSCWrap").removeClass("priSCW-active");
    });
});

答案 1 :(得分:2)

如果您移除了removeClass()来电,则切换功能可以满足您的需求。在您删除课程时,切换将始终立即重新添加。另请注意,.priSCWrap元素不是兄弟元素,因此siblings()不会选择任何内容。您需要再次查询这些元素并从匹配集中删除当前,以删除任何现有的priSCWrap-active类。试试这个:

$("body").on("click", ".container", function(event) {
    event.stopPropagation();
    var $current = $(this).find('.priSCWrap').toggleClass("priSCW-active");
    $('.priSCWrap').not($current).removeClass('priSCW-active');
});

Example fiddle

另请注意thisfind()的使用,否定了将id选择器放在一起的必要性。

答案 2 :(得分:0)

您必须删除此行

$(".priSCWrap").removeClass("priSCW-active");