我已将窗口的滚动事件绑定到视图的方法,例如:
MyView = Backbone.View.extend({
initialize: function(){
_.bindAll(this, 'handleScrolling');
$(window).off('scroll', this.handleScrolling).on('scroll', this.handleScrolling);
}
})
我看到这不起作用。如果此回调被触发的次数与此视图实例化的次数一样多。但是,如果我从 中删除处理程序off
,则它会正确解除绑定并且每次滚动仅触发一次。喜欢:
$(window).off('scroll').on('scroll', this.handleScrolling);
知道为什么会这样吗?我不想从此事件中删除所有回调,因为其他视图/代码可能会将事件绑定到它,这将使应用程序行为异常。
有没有更好的方法将事件绑定到当前视图范围之外的窗口/文档或其他元素?