【问题标题】:Javascript SetInterval / addEventListener not workingJavascript SetInterval / addEventListener 不起作用
【发布时间】:2020-06-07 00:35:26
【问题描述】:

我刚开始学习 Javascript,我正在尝试各种功能。 这是我用来尝试函数 setInterval() 的 HTML 页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Wait!</title>
    <script>

        document.addEventListener('DOMContentLoader', () =>{
            setInterval(count, 1000);
        });

        let counter = 0;

        function count(){
            counter++;
            document.querySelector('#counter').innerHTML=String(counter);
        }

    </script>
</head>
<body>
    <h1><span id="counter">0</span> seconds have passed...</h1>
    <h3>Cherish your time...</h3>
</body>
</html>

它应该能够显示一个带有 h1 表示秒已过去的 HTML 页面,每 1000 毫秒增加 1,即 1 秒。

setInterval 函数应该每 1 秒运行一次 count() 函数,这会改变 变量counter 并在#counter 上显示当前值。

然而,当我运行这个程序时,似乎什么也没有发生。只有一个网页说0秒。 当我转到控制台(谷歌浏览器)时,没有发生错误,当我通过输入 counter 查询 counter 值时,它保持在 0。 另外,当我输入counter = 4 时,网页上的文字不会改变。因此,我认为 问题出在document.addEventListener(),虽然我不知道它是什么。 如果您能回答这个问题,我将非常感激。

【问题讨论】:

  • 请注意,与大多数语言一样,setIntervals 形式的延迟不会完全在设定的时间(本例中为 1000 毫秒)之后执行,但不是 直到这个时候已经过去了。特别是对于 javascript,它不能运行多个线程并且需要等到“队列”中的其他内容完成后,请记住这一点。可能超出了您现在需要学习的内容,但我总是使用带有计时器的requestAnimationFrame
  • 谢谢! ‎‎‎‎‎‎ ‎‎‎‎‎ ‎ ‎‏‎ ‎‏‎ ‎‏‎ ‎‏‎ ‎‏‎ ‎‏‎

标签: javascript setinterval addeventlistener


【解决方案1】:

哦,快!知道了。问题是我将'DOMContentLoaded' 拼错为'DOMContentLoader'

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 2016-02-27
    • 2011-06-20
    • 1970-01-01
    • 2016-01-21
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多