私scroll
のbackbone.jsビューにイベントがあります。ただし、画面をスクロールすると、scroll
イベントハンドラーが起動されていないようです。$(windows).scroll()
ただし、正常に動作します。scroll
これは、イベントをビューに使用できないことを意味しますか?
見る
PhotoListView = Backbone.View.extend({
el: '#photo_list',
events: {
'scroll': function() {
console.log('scrolling!');
}
},
initialize: function() {
this.collection.bind('reset', this.render, this);
},
render: function() {
// ...
}, this);
return this;
}
});
また、$(windows).scroll()
スクロールイベントの処理に使用する場合、backbone.jsコードのどの部分に挿入する必要がありますか?以下は私が現在それを置いているところです。
ルーター
var AppRouter = Backbone.Router.extend({
routes: {
'': 'explore'
},
explore: function() {
this.photoList = new PhotoCollection();
var self = this;
this.photoList.fetch({
success: function() {
self.photoListView = new PhotoListView({ collection: self.photoList });
self.photoListView.render();
// Check for Scrolling
$(window).scroll(function() {
self.checkScroll();
});
}
});
},
checkScroll: function() {
var contentOffset = $('#photo_list').offset().top;
var contentHeight = $('#photo_list').height();
var pageHeight = $(window).height();
var scrollTop = $(window).scrollTop();
var triggerPoint = 100;
if(contentOffset + contentHeight - scrollTop - pageHeight < triggerPoint) {
this.photoListView.collection.requestNextPage()
.done(function(data, textStatus, jqXHR) {
});
}
}
});
var app = new AppRouter();
Backbone.history.start();