我有这个代码:
<label><input type="checkbox">True?</label>
Run Code Online (Sandbox Code Playgroud)
和
$("label").click(function () {
$(this).toggleClass("active");
});
Run Code Online (Sandbox Code Playgroud)
当我单击复选框类切换时,单击"True?" 什么都没发生.为什么?
然后,如果我不在标签中包装复选框一切正常.
<input type="checkbox" id="c1"><label for="c1">True?</label>
Run Code Online (Sandbox Code Playgroud)
这太奇怪了......如果我把"换"也没关系也没关系.
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');
}
});
});
Run Code Online (Sandbox Code Playgroud)
使用change而不是click允许使用键盘导航表单的人.