Mirko Hansen: Funktion mit setTimeout() blockieren?!

Beitrag lesen

Hallo Guido!

setTimeout("MM_swapImgRestore()",4000);

Hier liegt der Fehler. Bei deinem Skript gehst du davon aus, dass das Skript an dieser Stelle für 4 Sekunden anhält, dann deine Funktion im setTimeout aufruft, und dann die eigentliche Funktion fortsetzt. Der setTimeout-Befehl funktioniert aber leider ein bisschen anders. Er macht quasi einen Prozess-Split. Ein Prozess läuft hinter dem setTimeout weiter, führt also dein rollover="1"; aus und die Funktion ist damit beendet. Der zweite Prozess durchläuft die "Innerein" vom setTimeout, wartet also erstmal 4 Sekunden und führt dann die dort definierte Funktion auf.

Ich hoffe, dass das einigermaßen verständlich erklärt war ;-)

MfG,
Mirko Hansen