ビュー イベントのバインド解除に問題がありました。ビューを作成します
var myView = Backbone.View.extend({
events : {
"click .item" : "nextPage",
"scroll" : "isScrolling",
"click .zoom" : "imageZoom"
},
initialize : function(){
this.collection.on("reset", this.render, this);
},
onClose : function(){
...
}
});
var view = new myView();
destroyArray.push(view);
ビューを破棄する必要がある場合は、次のビューをレンダリングする前に、破棄配列をループして destroyArray[i].close() (下記参照) を呼び出す関数を Router を介して呼び出します。
Backbone.View.prototype.close = function(){
this.undelegateEvents();
this.$el.removeData().unbind();
this.remove();
if (this.onClose){
this.onClose();
}
}
close 関数は、ページからビューを視覚的に削除しますが、ビュー内を行ったり来たりすると、イベント (および DOM 要素) が実際に増加します。私が間違っていることはありますか?
ビュー間を移動するとき、それらを再初期化します。
var view = new myView();
destroyArray.push(view);
...
view.close();
...
var view1 = new myView1();
destroyArray.push(view1);
それが問題の原因かもしれないと思ったのですが、追加されたイベントがビューにバインドされたイベントの数と等しくありません。
どんな助けでも大歓迎です。ありがとう。