一尘不染

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

javascript

我希望一个事件在选中/未选中复选框时触发客户端:

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

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

我认为必须有一种更清洁的jQuery方式。有人知道解决方案吗?


阅读 892

收藏
2020-05-01

共1个答案

一尘不染

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

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

绑定到change事件click而不是事件的主要好处是,并非所有对复选框的单击都会导致其更改状态。如果只想捕获导致复选框更改状态的事件,则需要适当命名的change事件。
删除评论

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

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

$(":checkbox")

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

$("input[type='checkbox']")
2020-05-01