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