首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的JavaScript倒计时计时器不能正常工作

我的JavaScript倒计时计时器不能正常工作
EN

Stack Overflow用户
提问于 2020-07-30 15:15:19
回答 2查看 66关注 0票数 2

我的JavaScript计时器工作得很奇怪:它运行到3-2,然后突然结束(没有通过步骤1和0)。以下是代码:

代码语言:javascript
复制
var count = 3;
function countDown() {
  document.getElementById("count").innerHTML = count;
  if (count > 0) {
    count--
  }
  else {
    clearInterval(ncount);
    document.getElementById("count").style.display = "none"
  }
  var ncount = setInterval("countDown()", 1000);
}
代码语言:javascript
复制
<form id="askName">
  <label> Enter your username: </label>
  <input id="input" type="text" required maxlength="10">
  <button type="button" onclick="countDown()"> Submit </button>
</form>
<h2 id="count"> </h2>

为什么会发生这种情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-30 15:21:52

问题是,您的setInterval正在调用生成另一个setInterval的函数,这将导致计数更快地减少。您可以使用内部函数来避免此问题。

代码语言:javascript
复制
var count = 3;
function countDown() {
   function helper(){
    document.getElementById("count").innerHTML = count;
    if (count > 0) {
      count--;
    }  else {
      clearInterval(ncount);
      document.getElementById("count").style.display = "none"
    }
  }
  var ncount = setInterval(helper, 1000);
}
代码语言:javascript
复制
<form id="askName">
  <label> Enter your username: </label>
  <input id="input" type="text" required maxlength="10">
  <button type="button" onclick="countDown()"> Submit </button>
</form>
<h2 id="count"> </h2>

票数 2
EN

Stack Overflow用户

发布于 2020-07-30 15:57:31

这应该没问题的。我试着改变setInterval时间

代码语言:javascript
复制
var count = 3;
    function countDown() {
        function helper() {
            document.getElementById("count").innerHTML = count;
            if (count > 0) {
                count--;
             } else {
                clearInterval(ncount);
                document.getElementById("count").style.display = "none";
        }
      }
      var ncount = setInterval(helper, 1020);
    }
代码语言:javascript
复制
<form id="askName">
  <label> Enter your username: </label>
  <input id="input" type="text" required maxlength="10">
  <button type="button" onclick="countDown()"> Submit </button>
</form>
<h2 id="count"> </h2>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63176225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档