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メソッド(この場合は本体)でイベントを他の何かにバインドすることもできます。

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

編集:@muistooshortが言及しているように、イベントのバインドも解除する必要があります。

于 2012-05-21T19:37:30.367 に答える