0

我的 Backbone 视图有一个事件 Popout,单击该事件会创建一个新视图并在 Kendo 窗口中打开该视图。我想要的是当我点击按钮时,我在这个视图中的事件被解除绑定,我可以在 Kendo Window 中使用我的新视图。接下来,当我关闭 Kendo Window 时,我希望我的事件重新绑定。但是我在这方面遇到了错误。

Uncaught TypeError: Object [object Object] has no method 'delegateEvents' 如何在 Kendo 窗口的关闭功能上重新绑定我的事件?

popout: function(){
                this.stopListening();
                  //this.delegateEvents();
                  this.undelegateEvents();              
                var model = this.model;
                var popOutModuleView = new PopOutModuleView({model:model});
                lightRegion.show(popOutModuleView);
                Backbone.trigger("popout");
                event.preventDefault();
                var a = $('#lightbox').kendoWindow({
                    actions: ["Maximize", "Close"],
                    title: name,
                    width: "90%",
                        height: "90%",
                        resizable: true,
                    close: function(e){
                        popOutModuleView.remove();
                        lightRegion.close();
                        this.delegateEvents();                  
                    }
                });
4

1 回答 1

1

“this”不是指 Backbone.View,因此 delegateEvents() 是未知的。您必须将 this 绑定到 close 函数或使其在 close 函数的范围内可用。

popout: function() {
    var _this = this;
    // CODE
    var a = $('#lightbox').kendoWindow({
        // CODE
        close: function() {
             _this.delegateEvents();
        }
    });
}
于 2013-09-10T16:04:43.253 回答