私はこの問題を何度も繰り返し実行しています。私は入力があるビューを持っており、すべてのkeyUpイベントの設定と更新が必要です。問題は、setが呼び出されて、入力をフォーカスを失わせるビューを再レンダリングする変更イベントをトリガするときです。したがって、ユーザーが1文字を入力すると、入力がフォーカスを失い、もう入力できなくなります。ビューを再描画すると入力がフォーカスを失う
これは、ユーザーが入力をクリックしたときに発生する場合もあります。色を変更するために、入力の周りのdivにクラスを追加したいとします。これにより、ビューが再レンダリングされ、入力がフォーカスを失います。入力が再描画したいdivの内部にあるので、私は単に入力のための別個のビューを作ることはできません。
ここに簡単な例があります。
itemView = Backbone.View.extend({
events: {
"keyup .itemInput": "inputKeyUp"
}
initialize: function(){
this.model.view = this;
this.bind('change', this.render());
this.render();
},
render: function(){
$(this.el).html($(ich.itemView(this.model.toJSON())));
return this;
},
inputKeyUp: function(e) {
this.model.set({name: $(this.view.el).find('input[type=text]').first().val()});
},
});
これまでのところ私は、{サイレント:真}を使用して、その周りに得ていると手動で物事を更新するが、これは混乱を作成します。
はいビューには既にユーザーが入力したテキストがありますが、入力内容に応じて他の操作を行いたいと考えています。彼らが入力をクリックすると、選択されたモデルを設定して、ビューを再表示する変更イベントを呼び出すようにして、ビューがフォーカスを失うようにします。 – Dan