我试图在 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>
一切正常...