同时在标签和复选框上绑定 JavaScript jQuery 点击事件

Posted

技术标签:

【中文标题】同时在标签和复选框上绑定 JavaScript jQuery 点击事件【英文标题】:Bind JavaScript jQuery click event on label AND on checkbox simultaneously 【发布时间】:2012-03-01 01:39:36 【问题描述】:

我正在为我的表单使用标签,如下所示:

<label for="foo" id="bar">Label</label>
<input type="checkbox" id="foo" />

我想在用户取消选中该框时隐藏一个元素,否则显示它。

问题是,如果我将点击事件绑定到“foo”,它只会在用户点击复选框本身而不是标签时起作用。因此,我是否还需要在标签上绑定点击事件?或者我应该将两个元素都包含在一个范围内? 我的 html 已经包含 2344 个元素,所以我想在不添加任何内容的情况下执行此操作,并且尽可能不加倍 javascript 代码或选择器。

【问题讨论】:

【参考方案1】:

您应该使用change() 事件来绑定,而不是使用click() 事件绑定,然后无论触发此更改,结果将是相同的:

$('#foo').change(
    function()
        // do whatever
    );

参考资料:

change()

【讨论】:

感谢您的完整回答!【参考方案2】:

change 事件应针对input 触发,无论是单击label 还是input

$("#foo").change(function ()  ... );

示例 http://jsfiddle.net/andrewwhitaker/6LMXW/

【讨论】:

感谢您的快速回答! @Willy:没问题!很高兴能提供帮助。

以上是关于同时在标签和复选框上绑定 JavaScript jQuery 点击事件的主要内容,如果未能解决你的问题,请参考以下文章

为啥表单标签会与我的 ngModel 和属性绑定混淆? ngModel 在 ngFor 里面 Form 标签

在javascript单击处理程序中隐藏和单选按钮和复选框标签

如何添加一个空间引导同时选中复选框和标签之间

如何使用javascript包含struts html标签?

如何将javascript绑定到MVC5视图中创建的表中的checkboxes和datetimepicker

JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转传参