我有负责渲染子视图的超级视图。当我重新渲染超级视图时,子视图中的所有事件都丢失了。
这是一个例子:
var SubView = Backbone.View.extend({
events: {
"click": "click"
},
click: function(){
console.log( "click!" );
},
render: function(){
this.$el.html( "click me" );
return this;
}
});
var Composer = Backbone.View.extend({
initialize: function(){
this.subView = new SubView();
},
render: function(){
this.$el.html( this.subView.render().el );
}
});
var composer = new Composer({el: $('#composer')});
composer.render();
当我单击click me div 时,将触发该事件。如果我composer.render()
再次执行,一切看起来都差不多,但点击事件不再触发。
检查工作的 jsFiddle。