我正在構建一個simon遊戲。在每一輪之後,玩家應該看到他在下一輪必須發揮的動作。所以我創建了一個函數showMoves,它閃爍着他必須玩的方塊。問題是這個函數沒有顯示任何東西。誰能告訴我我錯過了什麼?未能在for循環中設置超時
// the effect
function flasher(index) {
$(moves[index]).fadeIn(50).fadeOut(50).fadeIn(50).fadeOut(50).fadeIn(100);
}
var interval2;
// show the moves that supposed to be played
function showMoves() {
for (var i = 0; i < moves; i++) {
if (i === 0) {
interval2 = setTimeout(flasher(i), 1000);
} else {
interval2 = setTimeout(flasher(i), (i+1) * 1000);
}
}
}
你應該通過函數參考.'setTimeout(function(){flasher(i);},1000);' –
@FastSnail,你仍然會有[這種情況](http://stackoverflow.com/questions/1451009/ja vascript-infamous-loop-issue),'i'變量在所有對'閃光器的調用中將是相同的' –
'1000 ===(0 + 1)* 1000';除了更大的問題,這些分支是多餘的。 – Oka