使用backbone.js在视图内部单击

Mar*_*cus 4 backbone.js backbone-events backbone-views

我正在创建一个像这样的模态对话框

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;
    }

});
Run Code Online (Sandbox Code Playgroud)

然后我在另一个这样的视图中创建它

addPage: function (event) {
    event.preventDefault();
    var modal = new NewPageModalView();
    modal.render();

}
Run Code Online (Sandbox Code Playgroud)

这工作得很好但是如果我想关闭身体点击或按下转义时的对话框,最好的方法是什么?

Jac*_*ack 8

一般来说,当您使用事件哈希绑定骨干中的事件时,它们会被委托给视图的el,但是您仍然可以将事件绑定到initialize方法中的其他内容(在您的情况下是正文).

initialize: function() {
   $('body').bind('click', yourfunction);
 }
Run Code Online (Sandbox Code Playgroud)

编辑:正如@muistooshort提到的那样,你需要确保也解除绑定事件.