removeEventListener für anonyme Funktionen in JavaScript

Ich habe ein Objekt mit Methoden. Diese Methoden werden in das Objekt innerhalb einer anonymen Funktion. Es sieht wie folgt aus:

var t = {};
window.document.addEventListener("keydown", function(e) {
    t.scroll = function(x, y) {
        window.scrollBy(x, y);
    };
    t.scrollTo = function(x, y) {
        window.scrollTo(x, y);
    };
});  

(es gibt eine Menge mehr code, aber das ist genug, um das problem anzuzeigen)

Nun will ich aufhören, den Ereignis-listener in einigen Fällen. Deshalb bin ich versucht zu tun, ein removeEventListener aber ich kann nicht herausfinden, wie dies zu tun. Ich habe gelesen in anderen Fragen, es ist nicht möglich, den Anruf removeEventListener auf anonyme Funktionen, aber ist dies auch der Fall in dieser situation?

Ich habe eine Methode in t erstellt, in der anonymen Funktion und daher dachte ich, es war möglich. Sieht wie folgt aus:

t.disable = function() {
    window.document.removeEventListener("keydown", this, false);
}

Warum kann ich nicht das tun?

Gibt es andere (gute) Möglichkeit, dies zu tun?

Bonus info; das hat nur zu funktionieren in Safari, daher die fehlende ie-Unterstützung.

InformationsquelleAutor der Frage bitkid | 2011-02-09

Schreibe einen Kommentar