gpt4 book ai didi

Javascript setTimeout 在 for 循环中不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:54 25 4
gpt4 key购买 nike

我必须每秒更换一张图片的来源。我有一个 for 循环,其中调用了一个有超时的函数。我在 stackOverflow 上读到过它,但它不起作用。有人可以告诉我我可以解决什么问题吗?我一直在为此苦苦挣扎,我想承认的更多。谢谢。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script type="text/javascript">
function changeImage(k) {
setTimeout(function(){
document.getElementById("img").src = k + ".png"; alert(k );}, 1000);
}
function test() {
for (var k = 1; k <= 3; k++) {
changeImage(k);

}
}
</script>
</head>

<body>
<div id="main_img">
<img id="img" src="http://placehold.it/110x110">
</div>
<input type="button" style="width: 200px" onclick="test()" />
</body>

最佳答案

在您的代码中,您一次设置了所有超时。因此,如果您将它们设置为 all 一秒后它们将在一秒后all 触发。

您已经传入了索引 k,因此只需将时间参数乘以 k

setTimeout(function(){
document.getElementById("img").src = k + ".png";
alert(k);
}, k * 1000);
// ^ added

关于Javascript setTimeout 在 for 循环中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20810053/

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