尝试创建Chrome扩展程序,我使用jQuery使用以下语句更改某些input
和textarea
值:
$(this).val(newValue).trigger('change');
trigger
部分的目标是通知当前页面上使用的任何双向数据绑定模块input
的值已被更改。
它不起作用。
我尝试使用Knockout和Rivets,并且不都知道input
的值已使用上述jQuery行更改。< / p>
使用接受的答案here,我尝试了:
$(this).val(newValue).change();
不也可以。
有趣的是,如果我降级到纯DOM接口(即没有jQuery),那么它工作正常,并且双向绑定可以正确地通知值更改。使用以下代码:
element.value = newValue;
element.dispatchEvent(new Event('change'));
我尝试的上述工作和所有双向绑定模块都知道值的变化。
如何使用jQuery实现相同的效果?请注意,我的代码位于Chrome扩展程序的内容脚本中。
答案 0 :(得分:0)
您只需更改值并触发change事件,大多数MVVM框架都会检测该事件以更新可观察值。我不知道您的代码是什么样的,以及它失败的原因,但这个代码段有效:
engine
&#13;
<script>
var myListener = setTimeout(function () {
document.removeEventListener('mousemove', myListener, false);
window.location = 'index.php';
}, 3000);
document.addEventListener('mousemove', myListener, false);
</script>
&#13;