【问题标题】:Infinite scroll javascript not running无限滚动javascript未运行
【发布时间】:2012-06-27 02:01:03
【问题描述】:

我正在尝试使用此问题Check if a user has scrolled to the bottom 中给出的代码向页面添加无限滚动功能,但是当我滚动到页面底部时没有任何反应。这是代码,因此您不必点击链接:

<script type="text/javascript"> 
alert("popup!");    
$(window).scroll(function() {   
   if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
       alert("bottom!");
   }
});  
</script>

我添加了第一个警报以检查它是否只是我的浏览器阻止警报,但它显示正常。服务器还安装了 JQuery 1.7.2 min 并且页面是正确的,所以我认为这不是安装问题。

【问题讨论】:

  • 这里工作正常jsfiddle.net/joycse06/8tQYX
  • 尝试将 console.log($(window).height()+"&lt;-current sctoll | target-&gt;"+($(document).height() - 100)) 放入该循环中,在 chrome 中打开它并右键单击 -> 元素检查器,打开控制台选项卡,它会告诉您每个循环的值是什么,应该可以帮助您诊断问题。如果您没有得到任何跟踪,则事件没有触发。
  • 它对我来说似乎很好用.. jsfiddle.net/FLarv
  • 在控制台选项卡中,我收到了Uncaught ReferenceError: $ is not defined
  • 我添加了一个可能有帮助的答案。

标签: javascript jquery infinite-scroll


【解决方案1】:

在你回复我的评论后,你说你得到了

In the console tab I'm getting Uncaught ReferenceError: $ is not defined

那么我猜,你没有在页面的标题中包含 jQuery(这需要在每个页面的 &lt;head&gt; 中)

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 

这将告诉您 JQuery 是否已成功加载到您的页面上

if (typeof jQuery != 'undefined') {
    alert("jQuery library is loaded!");
}else{
    alert("jQuery library is not found!");
}

原评论:

尝试将console.log($(window).height()+"&lt;-current sctoll | target-&gt;"+($(document).height() - 100)) 放入该循环中,在 chrome 中打开它并右键单击 -> 元素检查器,打开控制台选项卡,它会告诉您每个循环的值是什么,应该可以帮助您诊断问题。如果你没有得到任何痕迹,则事件没有触发

【讨论】:

  • 出于某种原因,我尝试将其添加到头部但它不起作用,我尝试将它添加到正文中我的脚本正上方但它不起作用,我添加了两个滚动脚本并且 jquery 包含在页脚中并且它不起作用,然后我将它们放回身体中我拥有它们的位置,现在它完美地工作了。 jquery 包含在正文中,现在我让它工作了,与我第一次尝试它时的位置完全相同,而且我在它上面没有任何地方,但突然它起作用了。
  • 那么您可能希望将您的 JQuery 函数放入此函数 window.onload=function(){/* my code or function calls here */} 中,以确保在尝试执行任何脚本之前已加载所有内容。
【解决方案2】:

也许滚动事件使用您那里的语法正确触发,试试这个:

$(window).on('scroll', function () { 
  if ($(window).height() + $(window).scrollTop() >= $(document).height() - 100) {
    alert('do stuff');  
  }
});

【讨论】:

  • 我复制了这个,但它仍然没有弹出。我尝试将head标签放入头文件中,与其他javascript一起放入页脚文件中,什么都没有。
  • 那么不是滚动码坏了。如果您正在运行 Chrome,请打开检查器并单击 CONSOLE 选项卡。我在想你的 javascript 在窗口滚动代码之前的某个地方中断了,这意味着你的窗口滚动代码永远不会触发。找到您的运行时 javascript 错误,修复它们,然后重试。
猜你喜欢
  • 2017-01-17
  • 2012-10-31
  • 2016-09-02
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多