绑定和解除绑定骨干事件

时间:2013-09-10 09:56:21

标签: javascript jquery backbone.js kendo-ui

我的骨干视图有一个事件Popout,当点击它时会创建一个新视图并在Kendo窗口中打开该视图。我想要的是当我点击按钮时,我在这个视图中的事件变得无法绑定,我可以在Kendo Window中使用我的新视图。 接下来,当我关闭Kendo Window时,我希望我的活动重新绑定。但是我得到了一个错误。

未捕获TypeError:对象[object Object]没有方法'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();                  
                    }
                });

1 个答案:

答案 0 :(得分:1)

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

popout: function() {
    var _this = this;
    // CODE
    var a = $('#lightbox').kendoWindow({
        // CODE
        close: function() {
             _this.delegateEvents();
        }
    });
}