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

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

基本上,我希望页面上的每个复选框都出现这种情况.这种按一下就开火并判断状态的方法可以吗?

我想一定有一种更干净的jQuery方式.有人知道解决办法吗?

推荐答案

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

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

绑定到change事件而不是click事件的主要好处是,并不是所有点击复选框都会导致它改变状态.如果您只想捕获导致复选框更改状态的事件,那么您需要恰当命名的change事件Redacted in comments

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

Edit(见 comments )

要获取所有复选框,您有两个选项.您可以使用:checkbox伪 Select 器:

$(":checkbox")

或者您可以使用attribute equals Select 器:

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

Javascript相关问答推荐

如何在NightWatch.js测试中允许浏览器权限?

如何通过在提交时工作的函数显示dom元素?

如何在Javascript中的控制台上以一行形式打印循环的结果

为什么ngModel不能在最后一个版本的Angular 17上工作?'

WebRTC关闭navigator. getUserMedia正确

如何让npx在windows中运行js脚本?

如何从Intl.DateTimeFormat中仅获取时区名称?

我在我的Java代码中遇到了问题,代码的一部分看不到先前定义的对象

从包含数百行的表中获取更改后的值(以表单形式发送到后端)的正确方法是什么?

如何在Svelte中从一个codec函数中调用error()?

DOM不自动更新,尽管运行倒计时TS,JS

使用带有HostBinding的Angular 信号来更新样式?

当我try 将值更改为True时,按钮不会锁定

如何根据查询结果重新排列日期

在SuperBase JS客户端中寻址JSON数据

JWT Cookie安全性

如何使用[ModelJSON,ArrayBuffer]调用tf.loadGraphModelSync

Angel Auth Guard-用户只有在未登录时才能访问登录页面,只有在登录时才能访问其他页面

如何在不将整个文件加载到内存的情况下,在Node.js中实现Unix粘贴命令?

浮动标签效果移除时,所需的也被移除