Ihre this
Wertänderungen im Konstruktor. Sie können eine Referenz im Selektor beibehalten und die Referenz verwenden.
function Foo(elementId, buttonId) {
/*...*/
var self = this;
this.button.addEventListener('click', function(e) {self.bar();}, false);
}
Oder eine modernere Lösung, die keine Variable Function.prototype.bind
wäre die Verwendung erfordert.
function Foo(elementId, buttonId) {
/*...*/
this.button.addEventListener('click', this.bar.bind(this), false);
}
Die .bind
Methode gibt eine neue bar
Funktion mit dem Wert this
gebunden, was auch immer Sie es übergeben. In diesem Fall ist es vom Konstruktor an das Original this
gebunden.
Wichtig zu beachten, dass viele noch immer häufig verwendete Browser (zB IE 8, Safari <= 5.1, andere) Function.prototype.bind nicht unterstützen: http://kangax.github.com/es5-compat-table/ – zachelrath
var selbst = das; Das hat es getan; Ich habe nicht einmal gedacht, dass "das" auf das Button-Element verweist. Danke für Ihre Hilfe und die schnelle Antwort. Ich würde upvote, wenn ich könnte, aber ich habe noch nicht die rep :) –
@Llepwryd: Froh, dass ich helfen konnte. –