ねえ、私は持っていますsetTimeOut();
それは何度も自分自身を呼び出します。
clearTimeout()
問題は、ユーザーが特定の div を閉じたときにそれをクリアしたいことですが、実行中のタイムアウトの 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 にはスコープがありません。
タイムアウトをクリアするためのオプションは何ですか?