Coffeescript 找不到 div - railscast 114 已修订



尝试使用 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();
}
})

相关内容

  • 没有找到相关文章

最新更新