$(window).scroll(function ()在Chrome和Firefox中不再起作用

3

我遇到了一个奇怪的问题。昨天一切都很正常,但今天当我开始编写我的脚本时,$(window).scroll(function () 不再起作用。

我没有改动任何代码。

我进行了测试和尝试,并发现这在Chrome和Firefox中都不再有效。唯一做的事情就是将Firefox更新到11.0版本。但我个人使用的是Chrome。

以下是不再工作的代码:

$(window).scroll(function(){

        if($(window).scrollTop() == $(document).height() - $(window).height()){

      alert("WORKING!);
}
});

我只在Internet Explorer中收到警报消息。问题似乎围绕这行代码出现:

if($(window).scrollTop() == $(document).height() - $(window).height()){

在当前页面的最后一个元素之前,我也尝试过 <script><div>

有什么想法可以解决这个问题吗?我需要这个无限滚动功能在所有浏览器中都能正常工作。

谢谢!


3
您有一个语法错误。alert("WORKING!); 应该是 alert("WORKING!"); - user247702
我在Chrome 17、FF 10和FF 11上尝试了您的示例(除去语法错误)。在这三个浏览器中,在滚动到页面底部时,将出现消息框。我不知道这是否是预期的结果。 - user247702
我猜是比较的问题。我猜它无法确定文档高度。 - Kenny Flashlight
jprofitt:我正在制作一个无限滚动函数。向下滚动页面,从数据库获取更多数据并在屏幕上显示它们。 - Kenny Flashlight
除了缺少逗号之外,这在FF 10.0.2和11上都可以工作:http://jsfiddle.net/CXhSy/1/。肯定还有其他问题,请问您能展示更多的代码/示例网站吗? - Alex
显示剩余5条评论
1个回答

0

在我的FF 10.2.0上它可以工作,现在我已经更新到FF 11.0,它仍然可以工作。同样在Chrome 17.0.963.79中也可以:

fiddle: http://jsfiddle.net/8tmvq/

代码:

if ($(window).scrollTop() == $(document).height() - $(window).height()) {
    alert('WORKING!');
}

alert($(window).scrollTop()); // no scroll ... so: 0
alert($(document).height()); // like: 477
alert($(window).height());​ // like: 477

还要确保你有一个有效的 DOCTYPE!


你的 HTML 代码是否有效且没有怪癖模式?对于你来说,fiddle 能工作吗?还是只有网页上的代码? - ggzone
我刚刚做的是这样的。我有一个空的.php页面,里面什么也没有。粘贴了jQuery代码。如果我写了一个alert("test"), 它就会弹出这个警告。如果我从fiddle中粘贴代码,就没有警报。什么都没有。我已经在每个浏览器中尝试过了,但似乎都不再起作用了。我正在运行Windows 8 beta,也许这是一个问题。现在我将格式化我的计算机并重新安装Windows,看看是否有所帮助。 - Kenny Flashlight
如果您将fiddle代码粘贴到空的.php文件中,它将在任何浏览器中都无法工作,因为其中包含jquery函数,而您需要加载jquery!!! - ggzone
jquery.js 我已经加载在文件的顶部 - Kenny Flashlight
在W3C验证器中运行您的输出...并告诉我们是否具有有效的DTD。 - ggzone
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接