Hallo,
ich habe da ein Problem mit einem Konstruktor und der Übergabe von Werten an einen eventHandler. Vieleicht kann mir jemand helfen?
Der nachfolgende Code soll helfen, das Problem zu beschreiben:
Im Beispiel soll beim Klick in einen Tag die ID des Tags angezeigt werden.
<HTML>
<head>
</head>
<body>
<p ID="bulb">bulb</p>
</body>
<script type="text/javascript" >
//Konstruktor
function bulb(element){
this.element=element;
this.name=element.getAttribute('ID');
this.show=zeige;
this.element.onclick=zeige;
}
// werte Klickereignis aus
function zeige(){
alert("elementID="+this.name);
}
// erzeuge Instanz
b1=new bulb(document.getElementById("bulb"));
</script>
</html>
In meinem Beispiel wird das Klicken ausgewertet, es erscheint aber nur eine Meldung
"elementName=undefined".
Ich habe das auch schon mit anderen Varianten im Konstruktor wie z.B. addEventListener versucht. Das Ergebnis war immer das gleiche.
Wenn ich den Handler direkt im Tag unterbringe nach der Form
<p ID="bulb" onclick="b1.show()">bulb</p>
funktioniert das ganze. Es erscheint die Meldung
"elementID=bulb".
Ich möchte jedoch die Handler nicht im Tag vorgeben sondern über den Klassenkonstruktor. Hat vieleicht jemand eine Idee, die mir weiterhelfen könnte?