Robert Kabinger: JavaScript Functionsreferenz bei onclick funktioniert nicht

Beitrag lesen

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. :(

Oder wie gedenkst du eval() einzusetzen?

--
ie:% fl:| br:^ va:} ls:& fo:| rl:( n4:( ss:| de:] js:| ch:? sh:( mo:| zu:)