使用jQuery更改.prop不会触发.change事件 [英] Changing .prop using jQuery does not trigger .change event

查看:530
本文介绍了使用jQuery更改.prop不会触发.change事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've got an event listener on a checkbox:

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

我的事件监听器:

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

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

I have another event listener that changes .prop of the checkbox:

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

当我选中复选框DO SOMETHING时会触发.当我单击#button时,.prop发生了变化,并且我看到该复选框在视觉上处于未选中状态,但是DO SOMETHING并未被触发...

When I check the checkbox DO SOMETHING triggers. When I click on the #button, the .prop changes and I see the checkbox visually uncheck, but DO SOMETHING doesn't get triggered...

我正在忽略什么?

推荐答案

当用户通过页面上的交互更改值而不是使用代码修改值时,将引发Change事件.

Change event is fired when the value is changed by users interaction on page and not when value is modified using code.

在此处,您需要在更改属性后使用.change().trigger("change"):

Here you need to use .change() or .trigger("change") after changing the property:

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

工作演示

Working Demo

这篇关于使用jQuery更改.prop不会触发.change事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆