1

我有这个计数器脚本,但由于某种原因它不起作用,我想知道你们是否可以帮助我!(应该是倒数)

function updateTime() {
  var totalSec = 120;
  var hours = parseInt( totalSec / 3600) % 24;
  var minutes = parseInt( totalSec / 60) % 60;
  var seconds = totalSec % 60;

  var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);
  document.getElementById("timeLeft").innerHTML = result;
  totalSec = totalSec - 1;
}

setInterval(function(){ updateTime(); }, 1000);

脚本将 totalSec 转换为如下格式:00:00:00,在本例中为 120 秒,即 00:02:00,但脚本没有倒计时,为什么不呢?

4

3 回答 3

2

var totalSec = 120;应该在函数之外。您的代码将其声明为本地并在每次调用该函数时对其进行初始化。

于 2013-11-13T18:02:03.677 回答
1

函数 updateTime 每秒被调用一次,这意味着 totalSec 变量每次都设置为 120。

将该 var 移出函数。请记住,全局变量是一个坏主意。

于 2013-11-13T18:02:52.383 回答
1

您需要var totalSec=120;在您的功能之外进行 delcare。您的代码正在运行,但每次调用该函数时,它都会设置totalSec为 120,因此您永远看不到任何变化。

于 2013-11-13T18:04:55.027 回答