Norbert Klein: setTimeout

Beitrag lesen

n'Abend.

do
{
window.setTimeout("wechsel()", 1000);
a++
}
while (a<4);

Das Problem besteht darin, dass nach dem ersten Timeout die Schliefe scheinbar alle weiteren Durchläufe ohne Verzögerung durchführt, die Funktion wechsel() also viermal direkt hintereinander ausgeführt wird,
meine vier Überschriften verschwinden scheinbar gleichzeitig.

Deine Schleife setzt vier mal einen Timeout, der nach einer Sekunde die Funktion wechsel() aufrufen soll, da diese Timeouts aber (nahezu) zeitgleich gesetzt werden, werden sie auch (nahezu) zeitgleich ausgeführt.
Setz' das a++; einfach vor das window.setTimeout und als Zeit, die vergehen soll, bevor wechsel() ausgeführt wird, nimmst du 1000*a. Der Timeout, der im ersten Schleifendurchgang gesetzt wird, startet also nach einer Sekunde (1000*1 ms), der, der im Zweiten gesetzt wird, nach zwei Sekunden (1000*2 ms), usw.

Gruß
Norbert