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 に設定されています。

その変数を関数の外に移動します。グローバル変数は悪い考えであることに注意してください。

于 2013-11-13T18:02:52.383 に答える
1

var totalSec=120;関数の外でdecare する必要があります。コードは機能していますが、関数が呼び出されるたびtotalSecに 120 に設定されているため、変更は見られません。

于 2013-11-13T18:04:55.027 に答える