J'ai un objet qui contient des méthodes. Ces méthodes sont placées dans l'objet à l'intérieur d'une fonction anonyme. Cela ressemble à ceci:
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);
};
});
(il y a beaucoup plus de code, mais cela suffit pour montrer le problème)
Maintenant, je veux arrêter l'écouteur d'événements dans certains cas. Par conséquent, j'essaie de faire un removeEventListener mais je ne peux pas comprendre comment faire cela. J'ai lu dans d'autres questions qu'il n'est pas possible d'appeler removeEventListener sur des fonctions anonymes, mais est-ce également le cas dans cette situation?
J'ai créé une méthode dans la fonction anonyme et j'ai donc pensé que c'était possible. Ressemble à ça:
t.disable = function() {
window.document.removeEventListener("keydown", this, false);
}
Pourquoi je ne peux pas faire ça?
Y a-t-il une autre (bonne) façon de faire cela?
Info bonus; cela ne doit fonctionner que dans Safari, d'où le support IE manquant.