尝试使用 will_paginate
在无尽页面中遵循 railscast 114 的指南,但我从我的咖啡脚本中得到一个错误:
首页.js.咖啡
jQuery ->
if $('.pagination').length
$(window).scroll ->
url = $('.pagination .next_page').attr('href')
if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
$('.pagination').text("Fetching more products...")
$.getScript(url)
$(window).scroll()
在线上:
if $('.pagination').length
我收到以下错误:
Uncaught TypeError: Cannot read property 'length' of null
似乎脚本没有读取我的索引文件,因为脚本找不到我的任何div-box......
请帮忙...被这个无尽页面的问题困了一个星期了。
更新咖啡脚本
jQuery ->
if $('.pagination').length
$(window).scroll ->
url = $('.pagination .next_page').attr('href')
if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
$('.pagination').text("Fetching more products...")
$.getScript(url)
$(window).scroll()
为了使它起作用,您需要在加载 DOM 后执行选择器。您在第一行中正确定义了一个函数来实现这一点,但是这个函数(在document.ready
上执行)有一个空的主体。
简单来说,将除第一行以外的所有代码缩进一个级别。
这是通过将 coffeescript 移动到 application.js 中,在 jQuery 中重写它,然后调用 var $j = jQuery.noConflict(); 并在 evert $-sign 前面附加$j符号来解决的。不知道为什么会这样。认为这与同时运行的多个脚本有关。
它现在看起来像这样:
var $j = jQuery.noConflict();
$j(function() {
if ($j('.pagination').length) {
$j(window).scroll(function() {
var url;
url = $j('.pagination .next_page').attr('href');
if (url && $j(window).scrollTop() > $j(document).height() - $j(window).height() - 50) {
$j('.pagination').text("Fetching more products...");
return $j.getScript(url);
}
});
return $j(window).scroll();
}
})