【问题标题】:Content isn't loading in scroll内容未在滚动中加载
【发布时间】:2012-09-19 17:41:16
【问题描述】:

所以我创建了一个在 jsfiddle 中工作的动态滚动 --> http://jsfiddle.net/9zXL5/39/

var movelist = document.getElementById('movelist');

function yHandler() {
    var contentHeight = movelist.scrollHeight;
    var yOffset = movelist.clientHeight;
    var y = yOffset + movelist.scrollTop;
    if (y >= contentHeight) {
        movelist.innerHTML += '<div class ="newData">yooooo</div>';
    }
}


movelist.onscroll = yHandler;​

但它有未捕获的错误,例如未定义 yHandler。所以我通过放置 var movielist=.. 和 movielist.onscroll = yHandler; 来修复错误。在我的 $(document).ready 里面。错误消失了,但是当我的滚动条到达底部时,内容不会加载,如图所示 --> http://jsfiddle.net/9zXL5/40/

$(document).ready(function() {
    var movelist = document.getElementById('movelist');

    movelist.onscroll = yHandler;
});

function  yHandler (){

        var contentHeight = movelist.scrollHeight;

        var yOffset = movelist.clientHeight;

        var y = yOffset + movelist.scrollTop;

        if(y >= contentHeight){

            movelist.innerHTML += '<div class ="newData">hey look at me</div>';

        });
    }
}

我不知道为什么。如果有人向我解释为什么会这样,我将不胜感激。

【问题讨论】:

  • 试试var yHandler = function() {而不是function yHandler (){

标签: javascript jquery


【解决方案1】:

你的小提琴有几个错误:

  1. 你没有加载 jQuery
  2. 您有几个语法错误

这是一个有效的小提琴:http://jsfiddle.net/9zXL5/42/

如果您使用控制台(chrome/devtools 或 FF/firebug)来发现错误并纠正它们,这会有所帮助。在您的情况下,您在这里有右括号和方括号:

        movelist.innerHTML += '<div class ="newData">hey look at me</div>';
    }); // <-- remove the );
} // <-- remove this line

【讨论】:

  • 谢谢,我使用了 chrome 的调试器,使用这个更新的代码,当我在浏览器上滚动到 div 的底部时,我仍然没有加载内容。你的想法?
  • 是的,看看示例小提琴。只是新文本的定位是错误的。见这里:jsfiddle.net/9zXL5/43
  • 抱歉,误传,我在本地主机上说它是静态的。
【解决方案2】:

您在该 jsFiddle 中有许多 JavaScript 语法错误,原因是:

  1. 没有加载 jQuery,
  2. 在函数声明之后有一个不必要的括号和分号 ();),并且在该函数声明之后还有一个额外的、不匹配的右花括号 (})。

如果您还没有安装,我强烈建议您安装或开始使用 JavaScript 调试器。如果您使用 Firefox,我个人建议使用 Firebug。在 Internet Explorer 和 Chrome 中,可以使用 F12 键访问内置的开发人员工具。

这是updated jsFiddle

【讨论】:

  • 是的,感谢您的浏览。尽管如此,我还是使用了 chrome 的调试器,即使有了这个更新的代码内容也没有加载到我的浏览器中,而且我没有错误@AnthonyGrist
  • @Octavius 前几个显示在&lt;li&gt; 元素的旁边,原因我无法立即查明(尽管我承认我并没有特别注意它) .在开始将它们添加到末尾之前,您必须滚动到底部几次。
  • 不,我是说我的滚动在我的主浏览器上是静态的。为什么代码可以在 jsfiddle 上运行,但不能在我的浏览器上运行?
  • @Octavius 因为您的代码与 jsFiddle 中的代码不同。 Stackoverflow 无法帮助您调试您的网站,只能解决您在此处发布的特定问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
相关资源
最近更新 更多