У меня есть объект, в котором есть методы. Эти методы помещаются в объект внутри анонимной функции. Выглядит это так:
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);
};
});
(кода намного больше, но этого достаточно, чтобы показать проблему)
Теперь я хочу в некоторых случаях останавливать прослушиватель событий. Поэтому я пытаюсь выполнить removeEventListener, но не могу понять, как это сделать. Я читал в других вопросах, что невозможно вызвать removeEventListener для анонимных функций, но так ли это в этой ситуации?
У меня есть метод, созданный внутри анонимной функции, и поэтому я подумал, что это возможно. Выглядит так:
t.disable = function() {
window.document.removeEventListener("keydown", this, false);
}
Почему я не могу этого сделать?
Есть ли другой (хороший) способ сделать это?
Бонусная информация; это должно работать только в Safari, отсюда и отсутствие поддержки IE.