我有12個彩色方塊,點擊一個按鈕時,隨機選擇6個,背景顏色變爲黑色。代碼循環外執行第一個
正方形都在同時改變顏色,直到我添加了setTimeout函數,該函數修復了該問題但又導致了另一個問題 - 循環之外的代碼在循環之前執行,即調用Reset函數和警報。
for (var i = 0; i < 6;i++)
{
setTimeout(function()
{
var rand = arr[Math.floor(Math.random() * arr.length)];
var square = document.getElementById('square' + rand);
square.style.background="black";
},1000 * i);
}
Reset()
alert("Reset function")
我認爲setTimeout函數在某種程度上導致了這種情況 - 有沒有辦法解決這個問題?
謝謝。
是不是超時的目的是什麼? –
嚴重的是,我不明白你的問題,因爲你描述的是完全超時的目的,推遲執行任何代碼或功能 –
是的,我明白,正如我所說的,它在這方面工作正常,但造成首先執行循環外的代碼。復位功能並不意味着要在循環執行之後調用。 – user3047072