为什么';jQuery启动';输入';$.val(';';)输入集上的事件

为什么';jQuery启动';输入';$.val(';';)输入集上的事件,jquery,Jquery,当我通过jQuery.val(“”)更改文本输入的值时,为什么没有触发input事件 我猜,当您更改输入值时(通过jQuery的val方法),您是想让AngularJS看到您的更改(通过绑定) 我把这把小提琴放在一起,以说明如何让它发挥作用: 您可以创建一个合成UIEvent(在我们的例子中是“input”),然后将其分派到元素上,而不是调用trigger(它创建了一个jQuery“event”)。此合成事件将同时触发事件侦听器(hello alert!)和角度绑定。只有当jQuery没有触

当我通过jQuery.val(“”)更改文本输入的值时,为什么没有触发
input
事件


我猜,当您更改输入值时(通过jQuery的
val
方法),您是想让AngularJS看到您的更改(通过绑定)

我把这把小提琴放在一起,以说明如何让它发挥作用:


您可以创建一个合成UIEvent(在我们的例子中是“input”),然后将其分派到元素上,而不是调用
trigger
(它创建了一个jQuery“event”)。此合成事件将同时触发事件侦听器(hello alert!)和角度绑定。

只有当jQuery没有触发直接用户操作导致更改时,才会触发任何事件,如更改、模糊、输入等。您正在使用的浏览器不支持
输入
事件您需要触发该更改:
$('.selector').trigger('change')等等。我想这只是在使用jquery插件时的一个陷阱?我认为应该/将会有更多的支持,因为jquery实际上有很多合法的库。如果我想在将来使用jquery库来实现这类功能,我真的必须编辑插件,以便它也触发输入事件来更新模型吗?我想你说得对。我猜有一种“角度”方式可以通过编程方式更新值,这反过来也会更新模型。我读过一些文章,他们警告不要在Angular之外使用jQuery,可能是因为这个原因。祝你好运