小编典典

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

all

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

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

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

我在想一定有一个更干净的 jQuery 方式。有人知道解决方案吗?


阅读 204

收藏
2022-03-03

共1个答案

小编典典

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

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

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

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

编辑 (见评论)

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

$(":checkbox")

或者您可以使用属性等于选择器:

$("input[type='checkbox']")
2022-03-03