Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当代码操纵输入时,主干视图更改事件未触发_Javascript_Jquery_Backbone.js - Fatal编程技术网

Javascript 当代码操纵输入时,主干视图更改事件未触发

Javascript 当代码操纵输入时,主干视图更改事件未触发,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,在我的主干模型看来,我有: events: { 'change textarea' : 'changeContentTextarea', ... 当用户在文本区域手动输入文本时,会触发并执行以下操作: this.model.set('content', this.$el.find('textarea').val()); 但在程序中更改内容时(使用jQuery),它不会触发: 因此,模型的属性不会更新,只会更改textarea中的文本 我是否可以绑定任何事件来解决此问题

在我的主干模型看来,我有:

events: {
    'change textarea' : 'changeContentTextarea',
    ...
当用户在文本区域手动输入文本时,会触发并执行以下操作:

    this.model.set('content', this.$el.find('textarea').val());
但在程序中更改内容时(使用jQuery),它不会触发:

因此,模型的属性不会更新,只会更改textarea中的文本

我是否可以绑定任何事件来解决此问题? 或者,在使用jQuery更改内容后如何触发事件?

From

注意:使用JavaScript(例如使用.val()更改输入元素的值)不会触发事件

因此,您必须自己触发
change
事件

$("textarea").val(finalText).trigger("change");

注意:使用JavaScript(例如使用.val()更改输入元素的值)不会触发事件

因此,您必须自己触发
change
事件

$("textarea").val(finalText).trigger("change");

下面的答案是正确的,只有当您需要知道事件是由用户还是由JS触发时,才可以这样做:

$("textarea").val(finalText).trigger("customChange");
并定义如下所示的侦听事件:

events: {
     'customChange textarea' : 'doSomethingWithJSEvent',

下面的答案是正确的,只有当您需要知道事件是由用户还是由JS触发时,才可以这样做:

$("textarea").val(finalText).trigger("customChange");
并定义如下所示的侦听事件:

events: {
     'customChange textarea' : 'doSomethingWithJSEvent',