我希望一个事件在选中/未选中复选框时触发客户端:
$('.checkbox').click(function() { if ($(this).is(':checked')) { // Do stuff } });
基本上,我希望页面上的每个复选框都发生这种情况。这种触发点击并检查状态的方法可以吗?
我认为必须有一种更清洁的jQuery方式。有人知道解决方案吗?
绑定到change事件而不是click。但是,您可能仍然需要检查是否已选中该复选框:
change
click
$(".checkbox").change(function() { if(this.checked) { //Do stuff } });
绑定到change事件click而不是事件的主要好处是,并非所有对复选框的单击都会导致其更改状态。如果只想捕获导致复选框更改状态的事件,则需要适当命名的change事件。 删除评论
还要注意,我使用this.checked而不是将元素包装在jQuery对象中并使用jQuery方法,只是因为直接访问DOM元素的属性更短,更快。
this.checked
要获得所有复选框,您有两个选择。您可以使用:checkbox伪选择器:
:checkbox
$(":checkbox")
或者您可以使用属性等于选择器:
$("input[type='checkbox']")