Backbone.Marionette.CompositeView 内でスクロール イベントをキャプチャしようとしていますが、成功しません。
演習として、Backbone.Marionette を使用してhttp://www.atinux.fr/backbone-books/を書き直しています。ご覧のとおり、下にスクロールすると、より多くの本が取得されて表示されます (つまり、無限スクロール)。ただし、ビューでスクロール イベントをキャプチャできません。
これが私の(簡略化された)コードです:
LibraryView = Backbone.Marionette.CompositeView.extend({
// properties, initializer, etc.
events: {
'scroll': 'loadMoreBooks',
'click': 'loadMoreBooks'
},
// some functions
loadMoreBooks: function(){
console.log("loadMoreBooks");
}
});
完全なソース コードは、 https ://github.com/davidsulc/backbone.marionette-atinux-books/blob/scroll/assets/javascript/app.js#L86-89 で確認できます。
私が理解していないのは、「クリック」イベントが適切にトリガーされていることですが、「スクロール」イベントはそうではありません。私は何を間違っていますか?
編集:エラーは最終的には非常に単純でした...ビューのコンストラクターに「el: #content」を渡していましたが、スクロールは「.library」の CSS で定義されていました。したがって、DOMを次のように変更したら
<div id="content">
<div class="library">
</div>
</div>
に
<div id="content" class="library"></div>
すべてが正常に機能しました...