javascript - javascript中的setTimeout打印

标签 javascript

我已经开始学习 JavaScript,我想尝试一个简单的倒数计时器,但我想不通。

function countdown() {
  var count1 = 10;
  while (count1 >= 0) {
    setTimeout(function() {
      document.getElementById("main").innerHTML = count1;
    }, 1000);
    count1--;
  }
}
<p id="main" onload="countdown()"></p>

页面刚刚停止/挂起。有什么问题吗?

最佳答案

对定时器使用 setInterval,然后在倒计时到 0 时清除它。确保使用立即调用的匿名函数或在定义时立即执行命名函数。否则您的功能将不会执行,因此您没有计时器。

function countdown() {
  var count1 = 10;
  var myTimer = setInterval(function() {
    document.getElementById("main").innerHTML = count1;
    count1--;
    if (count1 == 0) {
      clearInterval(myTimer);
    }
  }, 1000);
}
countdown();
<div id="main"></div>

关于javascript - javascript中的setTimeout打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42219172/

相关文章:

javascript - 无法使用javascript更改图像的高度和宽度

javascript - 在包含 javascript 的网站上使用 NodeJS 进行抓取

javascript - 遇到错误后更改检测似乎中断

javascript - 当选择文件时更改标签内容 jQuery

javascript - 在 IE11 中使用 Angular 记录显示奇怪的行为

Javascript 对象和 this 关键字

javascript - 从 xcode 调用 javascript 函数

javascript - 如何在等待时遍历 Firestore 快照文档

javascript - 清理函数将值应用于 Ramda 中的函数数组

javascript - AngularJS:基本的错误处理