我正在创建一个像这样的模态对话框
window.NewPageModalView = Backbone.View.extend({
template: _.template($('#view-template-new-page-dialog').html()),
el: $('div#main'),
events: {
'click input[type=radio]': 'newPage'
},
newPage: function (event) {
$(event.currentTarget).closest('form').submit();
},
initialize: function () { },
render: function () {
$(this.el).append(this.template());
return this;
}
});
然后我在另一个视图中创建它
addPage: function (event) {
event.preventDefault();
var modal = new NewPageModalView();
modal.render();
}
这个效果很好但是如果我想关闭身体点击或按下转义时的对话框,最好的方法是什么?
答案 0 :(得分:8)
一般来说,当您使用事件哈希绑定骨干中的事件时,它们会被委托给视图的el,但是您仍然可以将事件绑定到initialize方法中的其他内容(在您的情况下是正文)。
initialize: function() {
$('body').bind('click', yourfunction);
}
编辑: 正如@muistooshort提到的那样,你需要确保也解开事件。