如果调用两次,setInterval()将不会停止

时间:2011-04-30 10:10:06

标签: javascript timer setinterval

我要做的是制作滑出式面板,但这里是我遇到的问题的简化示例。

myCount = document.getElementById("counter")
myCount.onclick = startCount;
count = 0;

function startCount() { 
    timer = setInterval("countToTen()", 200);   
}

function countToTen() {

    count++;
    myCount.innerHTML = count;

    if (count >= 10) {
        clearInterval(timer);
    }
}

如果单击一次,效果很好。如果你双击(并且我们不能相信用户只能在他们应该的时候点击),那么计数器将永远持续下去。我猜两个计时器已经制作好了,但是Firebug显示的计时器始终具有相同的ID。那么当setInterval被调用两次时,如何正确使用clearInterval?

1 个答案:

答案 0 :(得分:6)

var timer;
function startCount() { 
    if (!timer) {
        timer = setInterval(countToTen, 200);
    }
}