Hallo an alle,
also mit self = this oder bzw. allgemeint mit this auf die Methode zuzugreifen funktioniert nicht, da er es nicht als definierte Funktion sieht.
Ich kann nur mit einem Objekt zugreifen, dass ich außerhalb der Datei in einem Javascript-Tag instanziere und dann denselben Namen für die Methodenaufrufe benutze.
Beispiel:
function Foo
{
this.x = 1;
//durch dieses ready-event wird gewartet bis der dom ready ist
$(docuemnt).ready(function()
{
//alle li-tags der ul-elemente mit Klassenname rating werden
//zurückgeliefert und durch click-event soz. mit onclickattribut
//versehen.
(".rating li").click(function()
{
/*wird public methode blabla aufgerufen von foo über objfoo,
welches weiter unten außerhalb erzeugt wird.
this wird übergeben, damit man später in Methode weiß
auf welches li tag geklickt wurde.*/
objfoo.blabla(this);
}
}
this.blabla = function ()
{
//wird id des entsprechenden li-tags abgefragt, auf das geklickt wurde
var idLi = this.id;
if(this.x)
//die macht irgendwas
}
}
Diese ganze Definition habe ich in eine js Datei ausgelagert.
In meinem Html-code erzeuge ich dann in einem javascript-tag ein objekt:
<script ...>
objfoo = new Foo;
</script>
Dieses objekt "objfoo" habe ich oben benutzt um auf die Methode zuzugreifen.
Problem:
Alle Objekte die ich außerhalb dieser Datei in einem Script-Tag erzeuge, wollen dann auf ein objekt mit dem Namen objfoo zugreifen, was ja eventuell nicht immer der Fall wäre, da ich ja nicht jedes objekt objfoo nennen kann.
Z.B. ein andres Objekt mit dem Namen objfoo2 hätte dann ein Problem, weil es ja nach objfoo intern gesucht würde.
Mich würde also interessieren wie ich auf die Methode intern zugreifen kann, sodass diese auf das Objekt angewendet wird das ich gerade erzeugt habe ohne dass ich speziell einen Objektnamen angeben muss.
D.h. irgendein Operator, der meine Methode auf das aktuell erzeugte Objekt verweist.
Ich wäre sehr dankbar, wenn mir jemand weiterhelfen könnte.
Sonst wäre, dass hier eine Sackgasse für mich und ich müsste es anders umschreiben.
Hähnchen