0

尝试使用无尽页面遵循 railscast 114 的指南,will_paginate但我的咖啡脚本出现错误:

home.js.coffee

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 框...

请帮助... 一个星期以来一直被这个无尽页面的问题所困扰。

更新咖啡脚本

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()
4

2 回答 2

1

为了使其工作,您需要在加载 DOM 后执行选择器。您在第一行中正确定义了一个函数来实现这一点,但是这个函数(在 上执行document.ready)有一个空的主体。

简而言之,将除第一行之外的所有代码缩进一级。

于 2013-02-02T13:10:20.083 回答
0

这是通过将咖啡脚本移动到 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();
}
})
于 2013-02-02T16:29:01.617 回答