指定された時間から 0 になるまでカウントダウンする単純なタイマーを Javascript で作成したいと思います。完全に機能するこのチュートリアルを見つけました。私の問題は、同じページに複数のタイマーを配置する必要があることです。このチュートリアルでは、グローバル変数を使用しているため、明らかにそれを行いません (私は JS/プログラミングが初めてなので、適切な用語を使用していない可能性があります)。お互いに干渉しないように、各タイマーを独自のオブジェクトとして作成するだけで、同じものを再作成しようとしました。これは私が持っているものです。
function taskTimer(name, startTime) {
this.timer = name;
this.totalSeconds = startTime;
this.tick = function() {
if (this.totalSeconds <= 0) {
return;
}
this.totalSeconds -= 1;
this.updateTimer();
// window.setTimeout("this.tick()", 1000);
};
this.updateTimer = function(){
this.seconds = this.totalSeconds;
this.hours = Math.floor(this.seconds / 3600);
this.seconds -= this.hours * (3600);
this.minutes = Math.floor(this.seconds / 60);
this.seconds -= this.minutes * (60);
this.timeString = this.leadingZero(this.hours) + ":" + this.leadingZero(this.minutes) + ":" + this.leadingZero(this.seconds);
return this.timeString;
};
this.leadingZero = function(time){
return (time < 10) ? "0" + time : + time;
};
}
var testTimer = new taskTimer("timer", 30);
testTimer.tick();
そこで最後に作成しました。Running
はどちらが正しいかを返しますが、runningtestTimer.updateTimer();
は値を返しません。コードのその部分には明らかに何か問題があり、私はそれを理解できません。00:00:30
testTimer.tick();