molily: Prototypes Element.repace

Beitrag lesen

Hallo,

wieso wird eigentlich der Aufruf ausgeführt bevor die Zeile darüber fertig ist?

Weil Prototype die Scripte im HTML-Code nicht sofort, sondern jeweils mit einem Timeout ausführt. Da JavaScript nur mit einem Thread arbeitet, läuft erst dein Teilscript durch. Wenn das zur Ruhe kommt, werden die Scripte ausgeführt.

Keine Ahnung, warum sich die Entwickler dazu entschlossen haben, jedenfalls hast du direkt nach der Ausführung von Element.replace keinen Zugriff auf die Scripte.

Es ist nur konsequent, dass du addAllEvents ebenfalls nach einem setTimeout startest. Der kann auch 1ms sein, er wird in jedem Fall nach den Funktionen ausgeführt, die Prototype per setTimeout in die Ausführungs-Queue eingefügt hat.

Mathias