D.R.: myImge.setAttribute("onclick", "testFunc");

Beitrag lesen

Hallo,

jetzt habe ich doch noch ein Problem:

An dieser Stelle ist „setAttribute“ aber ohnehin nicht sonnvoll…
Warum eigentlich? (Das ist jetzt aber nicht mein Hauptproblem ;-)

Weil Eventhandler intern nicht als Attribut, sondern als Funktion verarbeitet werden. Der Browser muss das Attribut also erstmal konvertieren.

ing.onclick = function(){
testFunc();
}
Das ganze sitzt in einer Schleife. Dort werden mehere Bilder erzeugt und jedes soll dieses onclick Attribut mit der gleichen testFunc() aber unterschiedlichen Funktionsparametern bekommen, also ungefähr:

for (var index in list)
{
  var img = document.createElement("img");
  img.setAttribute("src", "http...");
  img.onclick = function()
  {
    testFunc(index)
  }
  parentDiv.appendChild(img);
  .
  .
  .
}
Wenn ich das ganze jetzt ausprobiere, haben alle img's in ihren testFunc's den hösten vorkommenden index Wert. Offensichtlich wird bei
img.onclick = function()
  {
    testFunc(index)
  }
_allen_ in dieser Schleife erzeugten img Objekten der jeweisl neue Wert zugewiesen.
Die mit setAttribute zugewiesenen Werte (z.B. src) sind wie gewünscht verschieden.

Das Problem wurde hier erst vor kurzen angesprochen. Da ist bestimmt auch was für dich dabei!

mfg. Daniel