Graphity: Prototypes Element.repace

Beitrag lesen

Guten morgen Forum

Ich habe das wohl ein sehr spezielles Problem mit der Methode Element.replace in der Prototype JS Lib.
Kurz gesagt, ich habe ein DIV, welches als Inhalt eine SELECT-Liste enthält. Dieses ersetze ich nach einem Ajax-Aufruf mit wieder einem DIV-Element welches ein IMG-Tag und ein SCRIPT-Tag enthält (unschön, ja, ich weiß). In diesem SCRIPT-Tag weise ich einer JS-Variable erst null zu (lösche also den vorherigen Inhalt) und weise dann eine Funktion zu (quasi "alert('test');"). Direkt danach rufe ich dann diese Funktion auf.
Also:

  
addAllEvents = null;  
Element.replace("events_list", "<div id='events_list'>  
<img src="test.png" alt="Testbild" />  
<script type="text/javascript">  
//<![CDATA[  
addAllEvents = function() {alert('test');};  
 //]]>  
</javascript>  
</div>");  
addAllEvents();  

Gut, zugegeben, die Funktion ist bei mir natürlich etwas größer, außerdem baut Prototype noch ein try-catch außen rum. Prinzipiell geht es mir aber um folgendes Problem:
Beim Aufruf von addAllEvents(); in der letzten Zeile kommt die Fehlermeldung, dass diese Funktion nicht definiert ist. Gebe ich die danach in die FireBug-Javascript-Konsole ein, funktionierts. Baue ich um diesen Aufruf ein setTimeout() herum, funktionierts aus.
Nun meine Frage: Gibt es etwas "besseres" als das warten? Weil das ist ja nicht wirklich sicher, es könnte ja mal länger, mal kürzer dauern. Und wieso wird eigentlich der Aufruf ausgeführt bevor die Zeile darüber fertig ist?

Liebe Grüße
Euer
    Graphity