Jquery设置计数器,但在调用函数时重置

时间:2012-09-10 17:03:43

标签: javascript jquery timer settimeout setinterval

有谁知道哪种功能最适合用于以下场景?

当一首歌开始播放时,我想开始一个以秒为单位计数的“秒表”。

在任何时候,我都希望能够调用此变量,例如您单击的按钮alert(time)并显示计时器上的计数。

但是,当我运行一个函数reset-timer();时,我希望这一切都重置并重新开始计数。

我在想settimeout或setinterval但不确定哪个是正确的。

谢谢:)

1 个答案:

答案 0 :(得分:3)

这是一个让您入门的基本概念: http://jsfiddle.net/V29qK/1/

var startTime = new Date();

function SetTime(){
    var curTime = new Date();

    var seconds = Math.round((curTime - startTime) / 1000) + " second(s)";
    document.getElementById("timer").innerHTML = seconds;
}


var interval = setInterval(SetTime, 1000);

function ResetTime(){
    document.getElementById("timer").innerHTML = "0 second(s)";
    startTime = new Date();
}
​

逻辑是:将全局变量设置为new Date()以表示开始时间。在间隔(或超时)上,获取当前new Date()并从中减去开始时间。这将为您提供毫秒的差异。然后,您可以使用此数据更新所需的任何UI元素。

要“重置”计时器,只需使用new Date()

将开始时间设置为当前时间