我有.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>
等...
答案 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;输入生成了两次点击。