如果我执行jQuery(expr).change(function),那么当用户对值进行更改时,我可以触发一个事件函数。
如果以编程方式更改它,是否可以触发它,即如果我调用jQuery(expr).val(“moo”)。
或者是否有一些普通的旧JavaScript改变了它的价值?
感谢您的帮助。
答案 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/