EventHandler bei dynamisch kreiertem HTML tut nicht
Walter K.
- java
Hallo,
es handelt sich unten um den Inhalt einer Schleife, mit der ich eine Reihe von Bildchen erzeuge. Die Bilder erscheinen mit den gewünschten Eigenschaften.
Aber: Die onClick-Anweisung wird ignoriert und nicht ausgeführt. Auch nicht mit addEventListener(). Das Ereignis wird weitergeleitet (zurückgeleitet) bis zum nächsten Element, das nicht dynamisch erzeugt wurde und dort von einem entsprechenden Handler ausgeführt.
Wenn ich mir den dynamisch kreierten innerHTML-Code anschaue, ist alles korrekt vorhanden, auch die onClick-Anweisungen.
Was tun?
Walter K.
var Bild=document.createElement("img");
Bild.id=NeuesObjekt[i];
Bild.alt=NeuesObjekt[i];
Bild.src=NeuesObjekt[i]+".jpg";
Bild.onClick="alert('auf Bild geklickt!')";// Hier klemmts!
Bild.style.position="absolute";
Bild.style.top=Oben;
Bild.style.width="78px";
Bild.style.height="58px";
Objekt.appendChild(Bild);
Hallo,
var Bild=document.createElement("img");
Bild.id=NeuesObjekt[i];
Bild.alt=NeuesObjekt[i];
Bild.src=NeuesObjekt[i]+".jpg";
Bild.onClick="alert('auf Bild geklickt!')";// Hier klemmts!
Du erzeugst hier ein Attribut onClick mit einem String-Inhalt. Dass onclick (gewöhne Dich an die Kleinschreibung) ein Eventhandler ist und dass der Inhalt %SCRIPT ist, weiß nur der Parser des Browsers. Du muss dem Attribut onclick explizit eine Script-Funktion zuweisen:
Bild.onclick= function() {alert('auf Bild geklickt!')};
viele Grüße
Axel
Hallo Axel,
Danke! Es funktioniert. Und die Kleinschreibung ist tatsächlich mitentscheidend. Tolle Sache, das Forum.
Gruß
Walter K.