Javascript 停止setInterval的执行

Javascript 停止setInterval的执行,javascript,angularjs,setinterval,Javascript,Angularjs,Setinterval,我正在制作一个小的幻想游戏。在游戏中,玩家有一个耐力极限。对于地图上的每次单击,耐久性栏都会增加: angular.element('.click').click(function() { var endurance_click = angular.element('.progressbar').height(); angular.element('.progressbar').css('height', endurance_click-20); }); 我想完成的事情是,如果你点击地图,在你

我正在制作一个小的幻想游戏。在游戏中,玩家有一个耐力极限。对于地图上的每次单击,耐久性栏都会增加:

angular.element('.click').click(function() {
var endurance_click = angular.element('.progressbar').height();
angular.element('.progressbar').css('height', endurance_click-20);
});
我想完成的事情是,如果你点击地图,在你的耐力耗尽之前停下来,等待2秒,我想启动一个功能,恢复你的耐力。当你决定继续时,我想停止这个功能

我尝试过setInterval,但该函数一直在运行

这是我的密码:

//Call a function that should restore the endurance
d = window.setInterval(restoreEndurance2, 2000);

function restoreEndurance2()
{
    var endurance_restore = angular.element('.progressbar').height();
    angular.element('.progressbar').css('height', endurance_restore+20);
    if(endurance_restore >= 320) //If it's restored
    {
        alert(endurance_restore);
        clearInterval(d);
    }
}

当我开始在地图中导航时,如何使功能停止?

您已经有了ClearInterval;应该由谁来做。那有什么问题?clearInterval是停止设置间隔的方式。这只是一个提示,为了程序的可维护性,最好将逻辑与演示分离。@MattBurland:好吧,我的代码中的clearInterval是在您完全有耐力时启动的。但假设你有50%的耐力,等待2秒钟,然后再继续前进。当我这样做时,我想停止设置间隔。@user500468:是的,所以在移动时使用clearInterval。@MattEurland:是的,但是当我单击时,我应该在代码中的什么位置放置clearInterval来停止设置间隔?