嘿,我有一个setTimeOut();
它一遍又一遍地呼唤自己。
问题是我想在用户关闭给定的 div 时清除它,但是我不知道如何clearTimeout()
使用正在运行的超时 id 来中止它。
这是我的功能的一个例子:
upgrade(end , new Date().getTime() / 1000 ,text,false);
//happens when you clicks on something
function upgrade(end, start, text, timerId){
var per = ( (new Date().getTime() / 1000) - start ) / ( end - start ) * 100;
if(per>100)per=100;
if(per<0)per = 0;
text.innerHTML = Math.round(per)+'%';
timerId = setTimeout(function() { upgrade_bar(end, start, text, timerId) } , 17);
}
现在假设用户想要关闭这个计时器。clearTimeout(timerId)
当 id 的范围仅限于函数时,我该怎么办?
我有例如这个:
document.getElementById("sbmt").addEventListener("click", remove_div, false);
//this happens during windows.onload
不知何故,我的功能remove_div
必须清除它。但是超时的 id 没有范围。
我有什么选择可以让我清除超时?