Javascript clearInterval不适用于计时器

时间:2016-12-02 18:05:49

标签: javascript

为什么clearInterval()不起作用?我究竟做错了什么?我尝试了很多东西,但它们似乎没有成功......

var s = 60;
var timer = null;

function Ftimer (){
    document.getElementById("sec").innerHTML = s--;
}

document.getElementById("start").onclick = function () {
    var timer = setInterval(function(){ Ftimer() }, 1000);

}

document.getElementById("stop").onclick = function () {
    clearInterval(timer);
}

2 个答案:

答案 0 :(得分:2)

var timer使范围成为onclick函数,而不是全局变量。

timer = setInterval(Ftimer, 1000);

答案 1 :(得分:1)

这是因为您在此处覆盖了您的初始timer变量:

document.getElementById("start").onclick = function () {
    // this clobbers your previous `timer` assignment
    var timer = setInterval(function(){ Ftimer() }, 1000);

}

因此,只需删除var并使用外部作用域timer变量即可修复它:

document.getElementById("start").onclick = function () {
    // this assigns to your previous `timer`
    timer = setInterval(function(){ Ftimer() }, 1000);

}