使用 jQuery 更改.prop 不会触发.change 事件

我在复选框上有一个事件侦听器:

<input type="checkbox" name="something">

我的活动听众:

$('input[type="checkbox"][name="something"]').change(function() {
//DO SOMETHING
});

我有另一个事件侦听器,它可以更改复选框的 .prop:

$('#button').click(function() {
$('input[type="checkbox"][name="something"]').prop("checked", false);
});

当我选中 DO SOMETHING触发器复选框时。当我点击 #button.prop变化,我看到复选框视觉上取消选中,但 DO SOMETHING没有得到触发..。

我忽略了什么吗?

60705 次浏览

更改事件是在页上的用户交互更改值时触发的,而不是在使用代码修改值时触发的。

在这里,你需要在更改属性后使用 .change().trigger("change"):

$('input[type="checkbox"][name="something"]').prop("checked", false).change();

工作演示

更新版本

.change()已被弃用

使用 .trigger('change')代替

$('input[type="checkbox"][name="something"]').prop("checked", false).trigger('change');