[英]The clearInterval does not work
var button1 = document.getElementById("start");
var button2 = document.getElementById("stop");
var timegraph = document.getElementById("ceas");
var time = 0;
var ResetStart = 0;
function Start(){
if (ResetStart==0) {
ResetStart=1;
Running();
button1.innerHTML="Pause";
}
else {
ResetStart=0;
button1.innerHTML="Resume";
clearInterval(myInterval);
}
}
function Reset(){
time = 0;
ResetStart = 0;
button1.innerHTML="Start";
timegraph.innerHTML="00:00:00:00";
}
function OnGoing(){
time++;
var hours = Math.floor(time/100/60/60);
var minutes = Math.floor(time/100/60 % 60);
var seconds = Math.floor(time/100 % 60);
var hundreds = Math.floor(time/10 % 10);
var thousands = time % 10;
if (hours<10){
hours = "0" + hours;
}
if (minutes<10) {
minutes = "0" + minutes;
}
if (seconds<10) {
seconds = "0" + seconds;
}
timegraph.innerHTML=hours + ":" + minutes + ":" + seconds + ":" + hundreds + thousands;
}
function Running(){
if (ResetStart==1){
var myInterval = setInterval (OnGoing , 10);
}
else {
timegraph.innerHTML="00:00:00:00";
}
}
該代碼應該是秒表。 問題是clearInterval不起作用。 當我第二次按下ID為“ start”的按鈕時,控制台出現錯誤:Uncaught ReferenceError:未定義myInterval。 當我第二次按該按鈕時,代碼秒表應該停止。
這是因為myInterval
是在Running
下定義的。 刪除var
並在Running
之外定義它。
MyInterval僅存在於函數中。 將var MyInterval放在函數之外。
var button1 = document.getElementById("start");
var button2 = document.getElementById("stop");
var timegraph = document.getElementById("ceas");
var time = 0;
var ResetStart = 0;
var myInterval;
function Start(){
if (ResetStart==0) {
ResetStart=1;
Running();
button1.innerHTML="Pause";
}
else {
ResetStart=0;
button1.innerHTML="Resume";
clearInterval(myInterval);
}
}
function Reset(){
time = 0;
ResetStart = 0;
button1.innerHTML="Start";
timegraph.innerHTML="00:00:00:00";
}
function OnGoing(){
time++;
var hours = Math.floor(time/100/60/60);
var minutes = Math.floor(time/100/60 % 60);
var seconds = Math.floor(time/100 % 60);
var hundreds = Math.floor(time/10 % 10);
var thousands = time % 10;
if (hours<10){
hours = "0" + hours;
}
if (minutes<10) {
minutes = "0" + minutes;
}
if (seconds<10) {
seconds = "0" + seconds;
}
timegraph.innerHTML=hours + ":" + minutes + ":" + seconds + ":" + hundreds + thousands;
}
function Running(){
if (ResetStart==1){
myInterval = setInterval (OnGoing , 10);
}
else {
timegraph.innerHTML="00:00:00:00";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.