JQuery检测Programatic变更事件

如果我执行jQuery(expr).change(function),那么当用户对值进行更改时,我可以触发事件函数。

如果它以编程方式改变,即如果我调用jQuery(expr).val(“moo”),是否有可能触发它。

或者,如果一些普通的旧JavaScript改变了它的价值?

谢谢你的帮助。

在更改了值之后,您可以自己触发事件,从而调用所有“onchange”处理程序。

jQuery('#element').change(); 

直接在JS中更改值不会挂钩jQuery可以监听以触发更改事件的任何内容。 像Sander说的那样,你可以自己解雇事件处理程序。 如果您无法控制其他代码修改这些值而且这不是一个选项,那么您就有点不走运了。 可能有效的唯一其他选项是让观察者使用setTimeout在一个间隔上观察值,这非常麻烦,可能不是一个好主意。

jQuery v1 +支持编程触发处理程序 – 我使用了这个方法而不是.change()方法,因为它允许在需要时触发多个其他处理程序(例如一些自定义处理程序)。 API文档位于: http : //api.jquery.com/trigger/