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

jw5wzhpr  于 2023-06-05  发布在  jQuery
关注(0)|答案(2)|浏览(199)

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

<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没有被触发……
我忽略了什么?

goucqfw6

goucqfw61#

当值由用户在页上的交互更改时(而不是使用代码修改值时),将激发Change事件。
这里需要在更改属性后使用.trigger('change')

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

Working Demo

v2g6jxz6

v2g6jxz62#

更新版本

.change()已弃用
使用.trigger('change')代替

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

相关问题