【问题标题】:How do I create a countdown timer?如何创建倒数计时器?
【发布时间】:2013-09-05 19:49:33
【问题描述】:

我是一名初级程序员,刚开始使用 JavaScript。我找到了一个看起来像这样的倒计时,

代码片段

var count=60 ;
var Time_counter=setInterval(timer, 1000) ;

function timer() {
    count=count-1;

    if(count <=1){
        clearInterval(Time_counter);
        alert("Game Over") ;
        return;
    }

    document.getElementById("timer").innerHTML=count; 
}

现在每当我运行这个程序时,这个计时器会立即运行而没有任何条件,即使我设置了条件也会发生。即使我将它保存在输入标签中的 onclick 属性中,它也会自行运行:

<input id="Timer_button" type="button" value="Time starter" onclick="timer()">

但还是同样的问题。即使我不调用该函数,它也只是运行。

谁能找出代码中的问题,这里有什么问题吗?答案将非常感激。需要请指教。

【问题讨论】:

  • 你已经在这里调用了间隔Time_counter=setInterval(timer, 1000)
  • 是的,但现在我知道它是一个全局变量,所以它会立即运行。所以我必须把它称为局部变量。

标签: javascript timer


【解决方案1】:

一种可能性:您可以创建一个函数来启动计时器:

var count = 60;
var Time_counter = null;

function startTimer() {
    Time_counter = setInterval(timer, 1000);
}

然后在点击时调用这个函数:

 […] onclick="startTimer();" […]

【讨论】:

    【解决方案2】:

    问题是 setInterval(timer,1000) 开始倒计时的过程。您已将其全局声明,以便在加载脚本后立即执行。你必须把它放在一个函数中,并且只有在它还没有被调用时才调用它。

    【讨论】:

    • 我把它变成了一个函数内部的局部变量,它的工作方式正是我想要的@JBausmer。谢谢大佬!!
    猜你喜欢
    • 1970-01-01
    • 2019-07-10
    • 2010-10-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多