javascript - jQuery 复选框选中状态更改事件

标签 javascript jquery event-handling

我希望在选中/取消选中复选框时触发客户端的事件:

$('.checkbox').click(function() {
  if ($(this).is(':checked')) {
    // Do stuff
  }
});

基本上我希望它发生在页面上的每个复选框上。这种点击触发并检查状态的方法可以吗?

我认为必须有一个更干净的 jQuery 方式。有人知道解决办法吗?

最佳答案

绑定(bind)到 change 事件而不是 click。但是,您可能仍需要检查复选框是否被选中:

$(".checkbox").change(function() {
    if(this.checked) {
        //Do stuff
    }
});

click 事件相比,绑定(bind)到 change 事件的主要好处是,并非所有对复选框的点击都会导致它改变状态。如果您只想捕获导致复选框更改状态的事件,则需要恰当命名的 change 事件。 在评论中编辑

还要注意,我使用 this.checked 而不是将元素包装在 jQuery 对象中并使用 jQuery 方法,仅仅是因为直接访问 DOM 元素的属性更短、更快。

编辑(见评论)

要获得所有复选框,您有几个选项。您可以使用 :checkbox伪选择器:

$(":checkbox")

或者您可以使用 attribute equals选择器:

$("input[type='checkbox']")

关于javascript - jQuery 复选框选中状态更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8423217/

相关文章:

javascript - 无法在 JS 中进行表单验证

javascript - 在gridview pageindexchange事件上运行javascript函数

javascript - 在javascript中使用变量的值来访问JSON对象

javascript - JSON 数据作为字符串工作,但在对象时抛出内部错误

delphi - 在Delphi XE中设置运行时的onclick事件

javascript - 如何跟踪或调试所有可用的 JavaScript 事件

javascript - 如何从另一个可重用组件和容器组件访问可重用组件

javascript - window.Open 打开弹出窗口而不是新窗口

javascript - 复选框ajax数据

c# - PubSubEvent<TPayload> 类和 CompositePresentationEvent<TPayload> 类之间的 Prism EventAggregator 区别