停止在函数中启动的计时器

时间:2015-06-11 20:14:57

标签: javascript timer

我已经在一个函数中启动了这个计时器,但是我不能用clearInterval来停止它,如果我再次运行它,它只会让它快两倍。

var TimerID;


    function StartTimer(){
    $(document).ready(function() {
    time=20;var Timer=document.getElementById('Timer');tmp=time;

    var TimerID = setInterval(function(){

                var c=tmp--,m=(c/60)>>0,s=(c-m*60)+'';
                Timer.textContent=m+':'+(s.length>1?'':'0')+s
                tmp!=0||(tmp=time);

        },1000);    



     });}

clearInterval(TimerID);

2 个答案:

答案 0 :(得分:4)

删除var TimerID = setInterval(function(){并将其设为

TimerID = setInterval(function(){

使用var TimerID = setInterval(function(){将导致TimerID成为document.ready回调函数内的局部变量。由于该范围是本地的,因此无法在回调函数之外访问它。

删除var将允许使用回调函数范围之外的TimerID变量,这似乎是意图。

答案 1 :(得分:0)

删除' var'在你的功能中。您在功能范围内重新定义了timerid。您想使用全局范围内的那个。