Hallo,
Ich habe ein kleines Problem mit JavaScript. Ich habe eine "Klasse" erstellt.
function tree()
{
...
}
Darin befinden sich sowohl Objekte als auch Funktionen, die mit
this.draw() = function() { ... }
definiert wurden.
Im Initalscript wird eine neue Instanz der Klasse erstellt:
tree1 = new tree();
Jetzt kann in der Klasse eine Funktion aufgerufen werden, die per
document.getElementById("treediv").innerHTML = "<img src='images/test.png' onclick='[funktion]' />";
ein Bild erzeugt. Allerdings soll bei Klick auf das Bild eine Funktion innerhalb der Instanz dieser Klasse (Beispielweise: tree1.content[2].show();) aufgerufen werden. In der Klasse würde ich einfach
this.content[2].show();
aufrufen, doch das this-Element ist natürlich beim Klick auf das Bild ein anderer. Ich kann aber auch nicht einfach
tree1.content[2].show();
schreiben, da es mehrere Instanzen der Klasse gibt.
Was ich also eigentlich bräuchte wäre eine Möglichkeit, entweder "this" einen eindeutigen Bezeichner geben zu können, sodass ich ungefähr
document.getElementById("treediv").innerHTML = "<img src='images/test.png' onclick='"+this+".content[2].show();' />
einfügen könnte (zur Zeit steht dann da "onclick='[Object object].content[2].show();'") oder dass ich "this" in einen absoluten wert (wie "document.elements.tree1" oder so) umrechnen kann.
Leider tut sich hier Google schwer, da "this" kein besonders seltener Begriff ist.
Ich habe den ganzen Code nochmal hier:
paste.pocoo.org/show/569812/
Ich hoffe, ihr könnt mir helfen,
Gruß, Simon