2015-02-05 87 views
-1

我有.myclass一種形式,裏面的一些ul - >li - >labeljQuery的hasclass或toggleclass問題

當我使用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

工程就好 - > http://jsfiddle.net/t233kL5a/ – adeneo 2015-02-05 22:57:48

+0

是的,工作正常,因爲adeneo說。請注意,您可以通過刪除「each」並使用「toggleClass」來改進邏輯。你有沒有檢查控制檯在你的代碼中的其他地方的錯誤? – 2015-02-05 23:03:13

+0

你究竟想要什麼? – 2015-02-05 23:14:27

回答

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

問題兩次點擊通過無標記>輸入產生。