ウィンドウのスクロール イベントを次のようなビューのメソッドにバインドしました。
MyView = Backbone.View.extend({
initialize: function(){
_.bindAll(this, 'handleScrolling');
$(window).off('scroll', this.handleScrolling).on('scroll', this.handleScrolling);
}
})
これが機能していないことがわかります。このコールバックが、このビューがインスタンス化された回数だけトリガーされた場合。ただし、からハンドラを削除するoff
と、正しくバインドが解除され、スクロールごとに 1 回だけトリガーされます。お気に入り:
$(window).off('scroll').on('scroll', this.handleScrolling);
なぜこれが起こっているのですか?このイベントからすべてのコールバックを削除したくありません。他のビュー/コードがイベントをイベントにバインドし、アプリの動作が予期しないものになる可能性があるためです。
イベントをウィンドウ/ドキュメントまたは現在のビューの範囲外の他の要素にバインドするより良い方法はありますか?