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

时间:2012-05-21 19:10:43

标签: 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;
    }

});

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

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

}

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

1 个答案:

答案 0 :(得分:8)

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

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

编辑: 正如@muistooshort提到的那样,你需要确保也解开事件。