問題:
ビュー内で設定されたイベントは、ビューが を使用して別のものに置き換えられ、 を使用$element.html(anotherView)
してページに戻された後に発生しません#element.html(theView)
。
例:
var BuggyView = Backbone.View.extend({
// Event works the at first, but not after the view is replaced, then added back
// onto the page
events:{
'click #some-element': 'on_click_some_element'
},
// This function gets called before the view is replaced by another view, but
// not after it is added back into the page the second time
on_click_some_element:function(event){
alert('User clicked "some element"');
}
});
イベントは、このコードの実行後に機能します。
// Create the new view:
var buggyView = new BuggyView({});
// Add the view to the page
$element.html(buggyView.el);
このコードは、後でビューがページ上で別のものに置き換えられたときに発生します。
$element.html(anotherView.el);
ビューがページに再度追加されると、イベントは機能しなくなります。
$element.html(buggyView.el);