在不同页面中使用时重新启动JS函数(无限滚动),以避免累积结果

时间:2016-03-20 18:18:53

标签: javascript jquery ruby-on-rails-4

第一次加载每个页面时,我有一个无限滚动JavaScript函数可以正常工作。

问题:访问其他页面时会再次调用该函数,导致第二次访问的页面的无限滚动重复结果重复(2x),下一页重复3次等等,当点击页面链接时,虽然在手动刷新每个页面时工作正常。

我无法将JS代码从每个视图移动到主布局视图,因为它需要在每个视图中运行其他JS代码。

我的问题:如何在访问每个页面时刷新/清除JS功能,以便重新开始?或者我有哪些替代方案?

这是每页分页上的代码

$(document).on('ready page:load', function () {
var isLoading = false;
var num = 2;
  if ($('.pagination').length) {
    $(window).scroll(function(e) {
      var url = $('.pagination .next_page').attr('href');
   if (!isLoading) {
      if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 1500) {
      isLoading = true;
        var newUrl = url.replace("page="+num-1, "page="+num);
        $('#loader').html('<img src="/assets/gmloader.gif" alt="loading..." />');
        setTimeout(function(){isLoading=false},1000);
        num++;
        return $.getScript(newUrl);
      }
    }
    });
    return $(window).scroll();
  }
});

感谢您的帮助。

0 个答案:

没有答案