Wie übergebe ich diesen Kontext in einen Event-Handler?

Ich weiß, diese Frage macht nicht viel Sinn, aber lassen Sie mich versuchen zu klären, ein bisschen.

Habe ich eine Klasse, genannt ScrollBanner, und es sieht etwas wie folgt aus (eine Menge, der Kürze halber weggelassen):

function ScrollBanner() {
    this.initialize = function(selector) {
        $('span#banner1-nav').click(this._onClickNavigation);
    }

    this._onClickNavigation = function(event) {
        this.restartTimer(); //this == span#banner1-nav element from this.initialize
        //...
    }

    this.restartTimer() {
        //...
    }
}

Wie Sie sehen können .initialisieren setzt einen click-handler zu ._onClickNavigation. Einige erwarten, dass die diese im event-handler zu finden, um die ScrollBanner Beispiel, aber leider tut es das nicht. Es bezieht sich auf das element, das trigerred das click-Ereignis, in diesem Fall span#banner1-nav

Was wäre der beste Weg, um diese verweisen auf die ScrollBanner Instanz der Klasse?

InformationsquelleAutor der Frage josef.van.niekerk | 2011-03-30

Schreibe einen Kommentar