单击标签不会触发单击事件

And*_*rey 8 javascript jquery

我有这个代码:

<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/

这里出了什么问题?

rwa*_*ter 9

这样使用会更安全:

$(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允许使用键盘导航表单的人.