【发布时间】:2019-12-23 17:14:55
【问题描述】:
我正在尝试在 RoR 中实现无限滚动,但在加载更多项目后,会自动滚动到页面顶部。我想保持相同的位置。会发生什么?
控制器:
def index
@works = Work.paginate(page: params[:page], per_page: 15).order('created_at DESC')
respond_to do |format|
format.html
format.js
end
end
查看 index.js.erb:
$("#works").append('<%= j render("work_page_header") %>');
$("#works").append('<%= j render(@works) %>');
<% if @works.next_page %>
$('.pagination').replaceWith('<%= j will_paginate(@works) %>');
<% else %>
$('.pagination').remove();
<% end %>
endless_scrolling.js:
$(document).on('turbolinks:load', function() {
if( $('.pagination').length && $('#works-list').length)
$(window).on('scroll', function(e){
var url = $('.pagination .page-link[rel="next"]').attr('href');
if(url && $(window).scrollTop() > ($(document).height() - $(window).height() - 50)) {
$('.pagination').text('Loading works...');
$.getScript(url);
console.log('paginate...', url);
$(window).scroll();
}
});
});
【问题讨论】:
标签: javascript ruby-on-rails ruby