javascript - 点击标签不会触发点击事件

标签 javascript jquery

我有这个代码:

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

相关文章:

javascript - 两个日期之间的自定义过滤器

javascript - 在 ES6 中,如何使派生类中的基类函数为 `null`?

javascript - 遍历 JS 数组的定义元素

javascript - 格式化 HTML 代码时单选按钮中的 Jquery <br/> 问题

javascript - 除了某些元素,Angular JS 禁用触摸滚动

Jquery 事件 onclick 不起作用

javascript - 在页面上隐藏/显示多次

javascript - 如何将剑道网格标题文本保持在顶部?

jQuery 问题 : hover, 悬停不起作用

javascript - 选中复选框时将 div 移动到不同的部分