gpt4 book ai didi

javascript - JS 的间隔和延迟

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:54 26 4
gpt4 key购买 nike

我正在尝试构建一个 Simon says 游戏,现在我卡在了我想要点亮用户必须单击的按钮的部分。我用“for”来分析我存储序列的数组的每个部分,然后数组应该去每一轮并点亮按钮,就像这样;一直持续。但出于某种原因,“for”改变了同时传入数组的每个 div 的背景,即使我使用元素间隔来停止按钮。

这是我正在使用的代码笔:

https://codepen.io/argestis/pen/gLraBq?editors=0011

function litSequence() {
for (var i = 0; i < game.count.length; i++) {
if (game.count[i] === 1) {
game.blue.css("background-color", "cyan");
setTimeout(function() {
game.blue.css("background-color", "blue");
}, 1500);

} else if (game.count[i] === 2) {
game.red.css("background-color", "pink");
setTimeout(function() {
game.red.css("background-color", "red");
}, 1500);

} else if (game.count[i] === 3) {
game.green.css("background-color", " #4dff4d");
setTimeout(function() {
game.green.css("background-color", "green");
}, 1500);

} else if (game.count[i] === 4) {
game.yellow.css("background-color", "orange");
setTimeout(function() {
game.yellow.css("background-color", "yellow");
}, 1500);
}
}
};

最佳答案

setTimeout 不会停止您的逻辑。您可以将其视为创建逻辑操作的并行点。您的逻辑将继续运行,只有在该时间过去后,超时中的逻辑才会执行。由于 js 运行速度非常快,因此很可能是循环中的所有 setTimeout 触发都相对靠近在一起以同时出现。

关于javascript - JS 的间隔和延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40706749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com