【问题标题】:Jquery set counter, but reset when function is calledJquery设置计数器,但在调用函数时重置
【发布时间】:2012-09-10 17:03:42
【问题描述】:

有谁知道以下场景最适合使用什么功能?

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

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

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

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

谢谢:)

【问题讨论】:

  • 您到底需要什么,计算和显示时间的代码,或重置计数器的代码?您的帖子不清楚。
  • setTimeout 或 setInterval 都可以是正确的。哎呀,如果您不需要更新某些内容,甚至不需要间隔。给出一些关于你想要发生的事情的伪代码。
  • 跟踪开始时间。使用 setInterval 显示差异。如果需要,请重置开始时间。

标签: javascript jquery timer settimeout setinterval


【解决方案1】:

以下是帮助您入门的基本概念: 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() 将开始时间设置为当前时间

【讨论】:

  • 如果你也想有分钟,jquery也有一些非常简单的方法来跟踪分钟
  • 感谢施密蒂!这太棒了,正是我想要的!所以它是 setInterval..我将插入此代码并在几分钟内为您提供复选标记! @TMP 你有链接吗?
  • 链接是w3schools.com/jsref/jsref_getminutes.asp,但 shmiddty 的示例非常出色,您只需除以 60 即可得到分钟,余数可以保持秒。哎呀,这只是普通的 js 版本,我不记得是我用过的还是有 jquery 的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多