我很難從窗口中刪除事件,我無法弄清楚爲什麼它不工作。 我有一個函數,我將一個事件添加到窗口。事件沒有從窗口中刪除
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