チュートリアルhttp://railscasts.com/episodes/114-endless-page-revised?view=asciicastから無限のページスクロールを作成しましたが、動作します。
しかし、問題は、この JavaScript がすべてのページに対してエンドレス ページを実行することです (他のページであっても)。たとえば、メッセージ ボックスをエンドレスにページ付けしようとします。
このためのスクリプトは非常に単純だと思いますが、私はJavaScriptの初心者であり、プロジェクトのすべてのwill_paginateではなく、選択したページのみを無限にスクロールするようにスクリプトに指示する方法を知りません。JS ファイル $('.paginate) で、すべての paginate クラスに対してスクリプトを実行するように指示します。
ヒントにとても感謝します。
ERB の JS:
$('.profile_list').append('<%= j render(@users) %>');
<% if @users.next_page %>
$('.pagination').replaceWith('<%= j will_paginate(@users) %>');
<% else %>
$('.pagination').remove();
<% end %>
そして JS i JS ファイル:
if ($('.pagination').length) {
$(window).scroll(function() {
var url;
url = $('.pagination .next_page').attr('href');
if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 50) {
//$('.pagination').text('Fetching more products...')
$.getScript(url)