JS onclick und (pseudo)Klasse

  • Moin, irgendwie steh ich aufm Schlauch.
    Ich komm nicht dahinter, wieso die onclick Funktion nicht mach, was sie soll:


    Wie bekomm ich denn das onclick da "rein" oO?

  • JavaScript
    this.button.addEventListener('click', this.change, false);


    Du musst dann darauf achten, dass this in der Methode change sich jetzt auf den Button bezieht, sprich du musst so vorgehen:


    JavaScript
    MyClass.container.innerHTML = MyClass.textfield.value;
  • Das funktioniert schon mal :D Danke.
    Verstehe aber nicht, warum this.button.onclick nicht funktioniert.
    EDIT: ich Depp - habs ja nicht kopiert, sondern durch die Klammern () ausgeführt.



    Und bekommt man denn nicht irgendwie this (das Objekt von MyClass) in die Methode?
    Hab das bisher auch immer mit direktem Name angesprochen, aber das muss doch in JS möglich sein.


    Das hier funzt leider nicht:

    JavaScript
    this.button.addEventListener('click', this.change(this), false); // this an change() übergeben
    // ...
    change:function(obj) // this als obj entgegen nehmen
    {
        //alert(this.textfield.value)
        /*this.container.innerHTML = this.textfield.value;*/
        obj.container.innerHTML = obj.textfield.value;
        return;
    }
  • Du musst auf jeden Fall eine Referenz zwischen MyClass.button und MyClass.change herstellen, ein Kindknoten in einem Objekt weiß leider nicht welches sein Elternelement ist. Von daher kannst du entweder im addEventListener eine anonyme Funktion ausführen welche dann MyClass.change ausführt, dann kannst du in der change Funktion this verwenden, oder du verwendest im addEventListener-Befehl this und musst in der change Funktion die Referenz mittels MyClass bilden.


    Ich hoffe das war einigermaßen verständlich :D Es gibt alternative Lösungen, die sind allerdings mit Mehrcode verbunden und somit nicht unbedingt sinnvoll.

  • Ich hoffe das war einigermaßen verständlich


    Ja, doch =)
    mit ner anonymen Funktion ist es mMn dann am sinnvollsten. Denn wenn this in der Methode "auf einmal" der Button ist, verwirrt das nur unnötig :D


    Falls es jemand noch mal testen möchte:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!