Javascript 其他人每次都打

Javascript 其他人每次都打,javascript,Javascript,我构建这种类型的代码 countdown(); function countdown() { var zaehler = 1; while (zaehler <= 5) { document.getElementById("ueberschrift" + zaehler).style.display = "none"; zaehler++; if (zaehler < 5) { document.

我构建这种类型的代码

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);
        }
    }
}
倒计时();
函数倒计时(){
var zaehler=1;

while(zaehler您不需要
while
循环,您需要一系列链式的
setTimeout
调用。将
zaehler
变量保持在函数外部,以便其值在调用之间保持不变

另外,不要将字符串传递到
setTimeout
。只需传递对函数的引用。由于这是一个倒计时,我假设您不希望在
zaehler
达到5时继续运行,因此您希望删除
else
分支中的
setTimeout

最后,既然你还在继续

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";
    }
}
var-zaehler=1;
倒计时();
函数倒计时(){
document.getElementById(“ueberschrift”+zaehler).style.display=“无”;
zaehler++;
如果(扎勒<5){
document.getElementById(“ueberschrift”+zaehler).style.display=“inline”;
设置超时(倒计时,5000);
}否则{
document.getElementById(“ueberschrift1”).style.display=“inline”;
}
}


旁注:使用
window实际上没有什么好处。setTimeout
而不是
setTimeout
setTimeout
window
都是全局变量,都是以相同的方式解析的。
window.setTimeout
只是意味着JavaScript引擎必须首先解析
window
变量(通过最终在全局对象上找到它来实现)然后在全局对象上查找
setTimeout
。而只是
setTimeout
只做第一部分,不需要第二部分。但是如果你喜欢它作为一种风格,当然,这很好;这段代码不会受到任何额外工作的影响。:-)

欢迎使用Stack Overflow!请拿着(您会得到一个徽章!),四处看看,并通读,特别是在向其他人寻求帮助时,请花时间以可读的方式格式化和缩进代码。(不寻求帮助时也是一个好主意。)