我很难从窗口中删除事件,我无法弄清楚为什么它不工作。 我有一个函数,我将一个事件添加到窗口。事件没有从窗口中删除
Test.prototype.func1 = function(){
this.func2 = function(){
// do something
};
window.addEventListener("event1", this.func2, true);
};
现在我有一个exit
功能(当我离开那个特定的标签被称为),从那里我打电话detachEvent()
,其中我从窗口删除我的事件。
Test.prototype.exit = function(){
this.detachEvent();
}
而且我detachEvent
功能
Test.prototype.detachEvent() = function(){
window.removeEventListener("event1", this.func2, true);
}
现在问题出现了,因为我的代码是一个更大的项目的一部分,并以某种方式func1
被称为两次。所以event1
被添加到窗口两次。 所以不存在重复事件中,我甚至尝试添加事件的窗前,仿佛
Test.prototype.func1 = function(){
this.func2 = function(){
// do something
}
this.detachEvent();
window.addEventListener("event1", this.func2, true);
}
但当detachEvent()
正从里面func1()
称为是没有得到删除事件之前调用detachEvent()
,但它是当detachEvent()
获取调用工作从exit()。
我的代码适用于事件没有被添加两次但在这里不工作的情况。 我无法找出原因,任何帮助将不胜感激。
嗨@Austio,这使事情工作。感谢您的建议。但这是针对这个问题的一种解决方法。但我想知道为什么第一次我调用detachEvent(),事件不会被删除。那是这种疾病。但是,谢谢你的建议。 – Max