jquery hasclass或toggleclass问题

时间:2015-02-05 22:55:13

标签: jquery

我有.myclass的表单,在某些ul内 - > li - > label

当我使用addClass时,这有效:

$(".myclass label").each(function (){
    var $this = $(this);        
    $this.on("click", function(){
        $this.addClass("active");
    });
});`

但当我尝试检查该类是否存在时,没有任何反应

$(".myclass label").each(function (){
    var $this = $(this);    
    $this.on("click", function(){
        if($this.hasClass("active"))
            $this.removeClass("active");
        else
            $this.addClass("active");
    });
});

我尝试使用toggleClass,但没有。 我哪里错了?

*编辑抱歉,我忘了标签内有<input>

<form action="" method="post" class="myClass">
 <ul>
  <li>
    <ul>
    <li class="item-1"><label><input type="checkbox">my label 1</label></li>
    <li class="item-22"><label><input type="checkbox">my label 2</label></li>
    <li class="item-34"><label><input type="checkbox">my label 3</label></li>

等...

1 个答案:

答案 0 :(得分:0)

$('.myclass label').on('click', function (event) {
    if( $(event.target).is("label") ) {
        if ($(event.target).hasClass("active"))  {   
            $(event.target).removeClass("active");
        }else{
            $(event.target).addClass("active");
        }
    }
});

问题是标签 - &gt;输入生成了两次点击。