我有这个代码:
<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/
这里出了什么问题?
最佳答案
这样使用会更安全:
$(function() {
$('input[type="checkbox"]').bind('change', function (v) {
if($(this).is(':checked')) {
$(this).parent().addClass('active');
} else {
$(this).parent().removeClass('active');
}
});
});
使用 change
而不是 click
允许人们使用键盘导航表单。
关于javascript - 点击标签不会触发点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029880/