gpt4 book ai didi

javascript - 不然每次都打

转载 作者:行者123 更新时间:2023-12-03 00:50:33 25 4
gpt4 key购买 nike

我构建了这种类型的代码

countdown();
function countdown() {
var zaehler = 1;
while (zaehler <= 5) {
document.getElementById("ueberschrift" + zaehler).style.display = "none";
zaehler++;
if (zaehler < 5) {
document.getElementById("ueberschrift" + zaehler).style.display = "inline";
window.setTimeout('countdown()', 5000);
} else {
document.getElementById("ueberschrift1").style.display = "inline";
window.setTimeout('countdown()', 5000);
}
}
}

可悲的是,每次 else 都是 true 并且完成时。但是 while 循环的前 4 次 zaehler 变量不大于 5 还是我错了?

最佳答案

你不需要 while循环,你想要一系列 setTimeout 的链式序列来电。保留zaehler函数外部的变量,以便其值在调用之间保持不变。

另外,不要将字符串传递到 setTimeout 。只需传递对该函数的引用即可。由于这是倒计时,我假设您不想继续一次 zaehler已达到 5,因此您要删除 setTimeoutelse分支。

最后,既然你要继续

var zaehler = 1;
countdown();
function countdown() {
document.getElementById("ueberschrift" + zaehler).style.display = "none";
zaehler++;
if (zaehler < 5) {
document.getElementById("ueberschrift" + zaehler).style.display = "inline";
window.setTimeout(countdown, 5000);
} else {
document.getElementById("ueberschrift1").style.display = "inline";
}
}
<小时/>

旁注:使用window.setTimeout并没有真正获得任何好处。而不是setTimeoutsetTimeoutwindow都是全局变量,都以相同的方式解决。 window.setTimeout只是意味着 JavaScript 引擎首先必须解析 window变量(它最终在全局对象上找到它)然后查找 setTimeout在全局对象上。而只是setTimeout只完成第一部分,避免第二部分的需要。但如果您喜欢它的风格,当然也没关系;这段代码不会受到如此少量的额外工作的影响。 :-)

关于javascript - 不然每次都打,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53063579/

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