繁体   English   中英

clearInterval不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM