我正在制作一个西蒙游戏,我试图让按钮有1秒的时间间隔。但似乎我的setTimeout函数没有完成它的工作,并且所有的点击都是在没有1s间隔的情况下一次执行的。我试着在循环之外提醒一些事情,它工作得很好。谁能帮我这个?JavaScript的setTimeout函数不能在循环内工作
这是我的JavaScript代码:
for (var count = 1; count <= 20; count++) {
$("#count").html(count);
seq.push(Math.floor(Math.random() * 4));
seq.forEach(function(press) {
setTimeout(function() {
eval('$("#button' + press + '").click();');
}, 1000);
});
}
和相应的HTML:
<p>count: <span id="count">0</span></p>
<button id="button0" onclick="sound1.play()"></button>
<button id="button1" onclick="sound2.play()"></button>
<button id="button2" onclick="sound3.play()"></button>
<button id="button3" onclick="sound4.play()"></button>
谢谢!
我还没有能弄明白。抱歉。 – Spacemoose
所以你真的想要点击按钮210次,或者当你推进到你正在迭代的同一个数组时,你是否只有一个逻辑缺陷? – adeneo
@adeneo是的,我真的想要按钮“点击”210次。确切地说,我想要20个系列的印刷机,每次再添加一个点击到以前的系列。这是西蒙比赛的一部分,我还没有涉足其他部分。 –