如何在 rails 6 中使用 Kaminari 进行无限滚动?
How to infinite scroll with Kaminari in rails 6?
我正在寻找在我的项目中使用 Kaminari 进行无限滚动的解决方案,但它仍然无法按预期工作。
在我的主页上有渲染视图 post:
<div class="home_post_tab_content">
<%if @posts.present?%>
<div id="home_post_infinite_scroll">
<%= render @posts %>
</div>
<%if @posts.total_count > 10%>
<div class="home_post_pagination_button" id="home_post_pagination">
<%= link_to_next_page(@posts, 'Xem thêm', :remote => true) %>
</div>
<%end%>
<%end%>
</div>
控制器:
respond_to do |format|
format.html {}
format.js
end
脚本文件:
// Append new data
$("<%=j render @posts %>").appendTo($("#home_post_infinite_scroll"));
// Update pagination link
<% if @posts.last_page? %>
$('#home_post_pagination').remove();
<% else %>
$('#home_post_pagination').html("<%=j link_to_next_page(@posts, 'See more', :remote => true) %>");
<% end %>
问:当用户滚动到页面末尾(jquery 或 JS...)时,如何触发下一个按钮?
或者,如果有人有无限滚动的另一种解决方案,请告诉我。非常感谢!
我找到了解决它的方法:
<script>
$(document).on('turbolinks:load', function() {
$(window).scroll(function() {
var next_url = $("#home_post_pagination a[rel='next']").attr('href');
if (next_url && ($(window).scrollTop() > ($(document).height() - $(window).height() - 5000))) {
$('#home_post_pagination').show();
$('#home_post_pagination').html('<a>Loading...</a>');
$.getScript(next_url);
return;
}
});
return $(window).scroll();
});
</script>
$.getScript(next_url) 将在滚动时触发下一个按钮
我正在寻找在我的项目中使用 Kaminari 进行无限滚动的解决方案,但它仍然无法按预期工作。
在我的主页上有渲染视图 post:
<div class="home_post_tab_content">
<%if @posts.present?%>
<div id="home_post_infinite_scroll">
<%= render @posts %>
</div>
<%if @posts.total_count > 10%>
<div class="home_post_pagination_button" id="home_post_pagination">
<%= link_to_next_page(@posts, 'Xem thêm', :remote => true) %>
</div>
<%end%>
<%end%>
</div>
控制器:
respond_to do |format|
format.html {}
format.js
end
脚本文件:
// Append new data
$("<%=j render @posts %>").appendTo($("#home_post_infinite_scroll"));
// Update pagination link
<% if @posts.last_page? %>
$('#home_post_pagination').remove();
<% else %>
$('#home_post_pagination').html("<%=j link_to_next_page(@posts, 'See more', :remote => true) %>");
<% end %>
问:当用户滚动到页面末尾(jquery 或 JS...)时,如何触发下一个按钮? 或者,如果有人有无限滚动的另一种解决方案,请告诉我。非常感谢!
我找到了解决它的方法:
<script>
$(document).on('turbolinks:load', function() {
$(window).scroll(function() {
var next_url = $("#home_post_pagination a[rel='next']").attr('href');
if (next_url && ($(window).scrollTop() > ($(document).height() - $(window).height() - 5000))) {
$('#home_post_pagination').show();
$('#home_post_pagination').html('<a>Loading...</a>');
$.getScript(next_url);
return;
}
});
return $(window).scroll();
});
</script>
$.getScript(next_url) 将在滚动时触发下一个按钮