4

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

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();

}

这很好用,但是如果我想在点击正文时或按下转义键时关闭对话框,最好的方法是什么?

4

1 回答 1

8

一般来说,当您使用事件哈希在主干中绑定事件时,它们被委托给视图的 el,但是您仍然可以将事件绑定到初始化方法中的其他内容(在您的情况下为主体)。

initialize: function() {
   $('body').bind('click', yourfunction);
 }

编辑:正如@muistooshort 提到的,您需要确保也取消绑定事件。

于 2012-05-21T19:37:30.367 回答