JQuery检测程序化更改事件

时间:2008-12-11 11:49:19

标签: javascript jquery

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

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

或者是否有一些普通的旧JavaScript改变了它的价值?

感谢您的帮助。

3 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:1)

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