gpt4 book ai didi

Backbone.js listenTo window resize throwing [object Object] has no method 'apply' 错误

转载 作者:行者123 更新时间:2023-12-03 12:05:42 25 4
gpt4 key购买 nike

问题:

我正在尝试使用 Backbone.js 中的新 listenTo() 方法将调整大小事件从 View 附加到窗口。该事件似乎绑定(bind)到窗口,但是,当窗口实际重新绑定(bind)时,会引发以下错误:

Uncaught TypeError: Object [object Object] has no method 'apply' jquery.js:2 p.event.dispatch jquery.js:2 p.event.add.g.handle.h



以下是将事件附加到 View 的代码:
this.listenTo($(window),"resize", this.resizeContext, this));

这里是 resizeContext 函数:
  resizeContext: function(event) {

console.log("resizing context for "+this.id);

this.setHeight();

// trigger resize event (use event bus)
this.options.vent.trigger("resize", event);

}

注:使用标准 $(window).on("resize",this.resizeContext)附加事件并按应有的方式运行。我正在尝试利用新的 stopListening()添加到 view.remove(); 的功能

最佳答案

listenTostopListeningBackbone.Events 的方法mixin,它们只能用于监听由 .trigger 触发的 Backbone 事件,如内置的collection:add , 或 model:change事件。

这意味着您将无法使用 stopListening DOM 事件的功能,例如 window:resize .

考虑覆盖 View.remove代替方法。

var SomeView = Backbone.View.extend({
initialize:function() {
$(window).on("resize",this.resizeContext)
},

remove: function() {
$(window).off("resize",this.resizeContext);
//call the superclass remove method
Backbone.View.prototype.remove.apply(this, arguments);
}
});

关于Backbone.js listenTo window resize throwing [object Object] has no method 'apply' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com