[英]clearTimeout doesn't stop the loop
我的劇本:
var pics = [ "mads.jpeg" ,"niggs.jpg", "rits.jpeg"];
var totalPics = pics.length;
var frame = document.getElementById("photos");
var i = 0;
function loop() {
if(i > (totalPics - 1)){
clearTimeout(loopTimer);
}
frame.innerHTML = '<img id="i" class="image" src="real_bs/'+pics[i]+'" />';
i++;
loopTimer = setTimeout(loop, 300);
}
loop();
當i
超過totalPics - 1
,循環不會停止,而是會顯示一個小的未定義圖像。 為什么clearTimeout(loopTimer)
沒有停止它? 這是可變范圍的問題嗎?
您甚至不需要調用clearTimeout
僅安排在剩下更多迭代時才調用setTimeout
。 從未開始的超時不必清除:
(function loop() {
frame.innerHTML = '<img id="i" class="image" src="real_bs/' + pics[i] + '" />';
if (++i < totalPics) {
setTimeout(loop, 300);
}
})(); // invoke immediately
只需在clearTimeout方法調用之后添加簡單的返回即可。 像這樣
if(i > (totalPics - 1)){
clearTimeout(loopTimer);
return;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.