我有一個forTime循環,裏面有一個setTimeout函數用於延遲循環的每次迭代。雖然循環內的其餘代碼正確迭代,但setTimeout函數只能工作一次,就好像for循環在裏面一樣,而不是相反。這裏是我的代碼:for循環中的JavaScript setTimeout函數只發生一次
for (x = 0; x <= roll; x ++) {
setTimeout(function() {
space = $(".player." + turn).parents("td").attr("id");
space = parseInt(space);
player = $(".player." + turn);
$(".player." + turn).remove();
nextSpace = space + 1;
$("#" + nextSpace).append(player);
}, 500);
}
任何想法?
這些setTimeouts將被迅速連續調用,沒有任何延遲。您需要在setTimeout中使用回調來實現延遲。 – danronmoon 2013-03-10 07:40:02