【发布时间】:2019-06-06 16:10:21
【问题描述】:
我有这个代码:
<label><input type="checkbox">True?</label>
和
$("label").click(function () {
$(this).toggleClass("active");
});
当我单击复选框类切换时,当我单击“True?”时什么都没发生。为什么?
然后,如果我不在标签中包含复选框,一切正常。
<input type="checkbox" id="c1"><label for="c1">True?</label>
这太奇怪了......我是否输入“for”都没关系。
http://jsfiddle.net/zufs6ueh/1/
这里出了什么问题?
【问题讨论】:
-
onclick会触发两次吗?label以特定方式与input交互。 -
不知道为什么,我认为标签的点击事件可能会在它包含在标签或类似的东西中时被重新分配给输入,但解决方案可能是将事件绑定到输入和更改父母的标签,如
$("label input").click(function () { $(this).parent('label').toggleClass("active"); }); -
@Halcyon 是的,onclick 似乎触发了两次,因为我在网络检查器中看到了空的“类”。这可以解决吗?
标签: javascript jquery