我有一个包含方法的对象。这些方法被放入匿名函数内部的对象中。看起来像这样:
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支持。
(Elem.setUserData('eventListener', function(e){console.log('Event fired.');}, null);
,然后执行Elem.addEventListener('event',Elem.getUserData('eventListener'),false);。...和removeEventListener相同。希望你能看到这个没事。