Aufruf einer Methode aus einem event-handler

Ich habe diesen code an dem ich arbeite, aber jedes mal, wenn ich rufe die init-Methode bekomme ich immer einen Fehler

diese.addElement ist nicht eine Funktion

ist es, weil ich kann nicht rufen Methoden aus der event-Handler ?

function editor () {

    this.init = function () {
        $("#area").bind('click' , this.click_event );

    }

    this.addElement = function () {
        console.log("adding element");
    }

    this.click_event = function(event) {
        this.addElement();
        console.log("click event in x : "+event.data);
    }
}
  • Sie können auf jeden Fall Methoden aufrufen von event-Handlern. Die Frage ist, was ist this innerhalb click_event? Das verstehen und die Welt ist Ihre Muscheln.
  • auch wenn ich entfernen Sie "dieses" ich bekomme immer noch den gleichen Fehler
  • Wenn Sie entfernen this es ist immer noch da implizit: this.addElement() ist das gleiche wie addElement(). Aber prüfen this - es ist ziemlich wahrscheinlich, es ist nicht, was Sie wollte.
  • in Ihrem klicken Sie auf Rückruf, this nicht auf das Objekt der editor mehr. Tun console.log(this) innen addElement um herauszufinden, was this bezieht.
InformationsquelleAutor Ayoub M. | 2010-06-17
Schreibe einen Kommentar