這是代碼,它運行完美一次,但setInterval不會重複第二次,或者讓我們說其他連續時間,因爲它是假設的,這是我想要的,例如,當它到達數組的最後位置回到第一個等等,有人可以幫助我,我非常感激。setInterval不重複我的代碼,但它運行一次,我想知道爲什麼?
CSS:
#ok{position:absolute}
HTML:
<div id="ok">ok</div>
腳本:
var a=[b(),c(),d()];
function b(){
for (var i=0;i<700000;i++){document.getElementById("ok").style.left=(i)+"px";}
alert(i);
};
function c(){
for (var i=0;i<20;i++){document.getElementById("ok").style.left=(i)+"px";};
alert(i);
}
function d(){
for (var i=0;i<5;i++){document.getElementById("ok").style.left=(i)+"px";alert(i)};
};
for(var i=0;i<a.length;i++){
setInterval(function(){a[i];if(i==a.length-1){i=0;};},1000);
}
演示: jsfiddle
你怎麼知道它沒有運行更多比一次?在間隔中記錄日誌。 (另外,閉環問題)。 –
我向你保證,setInterval IS是連續運行的。你錯誤地解釋了結果。你實際上做的是立即在頂部執行一個()b()和c(),然後再不執行它們。不幸的是,我不認爲你的代碼會做你想做的事情,因爲循環通常在瀏覽器呈現更新之前開始和結束,所以我沒有理由修復它。 –