dedlfix: JavaScript Functionsreferenz bei onclick funktioniert nicht

Beitrag lesen

echo $begrüßung;

Das Problem ist, dass die Variable i und nicht deren aktueller Wert in den Eventhandler-Code eingebaut wird. Die Auswertung des Codes im Eventhandler findet erst beim Aufrufen statt. i ist somit immer 3, so wie es am Ende der for-Schleife hinterlassen wurde. Allerdings fällt mir leider kein eleganterer Weg außer eval() ein, um das Problem zu lösen.
Danke, das erklärt so einiges!

Das:

for (var i = 0; i < 3; i++)

a.onclick = function () { showbox(eval(i)); };


> ändert leider trotzdem nichts am Gesamtergebnis. :(  
  
Weil das immer noch das gleiche Prinzip ist. Der Code in der Eventhandler-Funktion wird \_nicht\_ während der Definition ausgewertet, egal, was du da hinzufügst.  
  

> Oder wie gedenkst du eval() einzusetzen?  
  
Ich dachte eher an sowas:  
  
  a.onclick = eval("function () { showbox(" + i + ") }")  
  
  
P.S. Im OP sah ich dich HTML 1.1 verwenden. Suche bitte im Archiv, warum das keine gute Idee ist. Auch die XML-Deklaration ist nicht gerade förderlich, wenn man den IE6 berücksichtigen muss.  
  
  
echo "$verabschiedung $name";