使用will_paginate在rails 3中使用jquery无限页面

时间:2011-06-04 02:04:55

标签: jquery ruby-on-rails-3 will-paginate

有没有人知道如何在rails 3中使用jquery和will_paginate进行无限页面?我已经尝试了很多方法,但它从来没有为我工作过。

3 个答案:

答案 0 :(得分:1)

请参阅Railscast #114 Endless Page

你应该能够使用Rails 3进行最少的修改(如果有的话)。

答案 1 :(得分:1)

你的endless-page.js文件看起来像这样

   var currentPage = 1;
   var autoloading = false;
   if( total_number_of_paginaion_pages > 1) {
       autoloading = true;
     }

function checkScroll() {
  if (autoloading && nearBottomOfPage()) {
    currentPage ++;
    autoloading = false;
    $.ajax( {
      url: window.location,
      data: 'page=' + currentPage,
      beforeSend: function() {
        $('.loading-info').show()
      },
      complete: function(){
        $('.loading-info').hide()
       },
      success: function(data){
        eval(data);
       }
     });
  } 
}

function nearBottomOfPage() {
  return scrollDistanceFromBottom() < 150;
}

function scrollDistanceFromBottom(argument) {
  return $(document).height() - ($(window).height() + $(window).scrollTop());
}

$(window).bind('scroll', function (){
         checkScroll();
});  

在你的js.erb文件中看起来像这样

$('.results-center').append('<%=escape_javascript(render :partial => '/search/search_result') %>');
if(! pagination_last_page) {
  autoloading = true;
}

答案 2 :(得分:1)

实现无限分页的最佳选择是使用will_paginate / kaminari gem和jquery。

有一个关于如何实现无尽页面的好博客,希望能回答你的问题。看看

http://www.idyllic-software.com/blog/endless-page-using-jquery-and-will_paginate/