我已经从一个函数中启动了此计时器,但是我无法通过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);

最佳答案

删除var TimerID = setInterval(function(){并使其

TimerID = setInterval(function(){


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

删除var将允许使用TimerID变量,而这似乎是在回调函数的作用域之外。

关于javascript - 在功能中启动的停止计时器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30790566/

10-10 16:33