最佳答案
我有一个包含方法的对象。这些方法被放入匿名函数中的对象中。它看起来像这样:
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 中工作,因此缺少 IE 支持。