ウィンドウからイベントを削除するのに苦労しているのですが、なぜ動作しないのかわかりません。 私はウィンドウにイベントを追加する機能を持っています。イベントがウィンドウから削除されない
Test.prototype.func1 = function(){
this.func2 = function(){
// do something
};
window.addEventListener("event1", this.func2, true);
};
は今、私は私が窓から私のイベントを削除していたにdetachEvent()
を呼び出していたところから、(私はその特定のタブを終了するときに呼び出される)exit
機能を持っています。
Test.prototype.exit = function(){
this.detachEvent();
}
そして、私のdetachEvent
機能は、私のコードは、より大きなプロジェクトの一部であり、何とかfunc1
回呼び出されているので、今、問題が発生し
Test.prototype.detachEvent() = function(){
window.removeEventListener("event1", this.func2, true);
}
です。したがってevent1
がウィンドウに2回追加されています。 だから私も
Test.prototype.func1 = function(){
this.func2 = function(){
// do something
}
this.detachEvent();
window.addEventListener("event1", this.func2, true);
}
のようなウィンドウにイベントを追加する前にdetachEvent()
を呼び出してみました。しかしdetachEvent()
がfunc1()
内部から呼び出さなっているときにイベントが削除取得されていないが、detachEvent()
が呼び出さ取得されたときに作業している重複イベントを持っていないとexit()から
私のコードは、イベントが2回追加されない場合に機能しますが、ここでは機能しません。 私はその理由を理解することができず、どんな助けも高く評価されます。
こんにちは@Austio、これは問題なく動作します。提案していただきありがとうございます。しかし、これは問題のための一種の回避策です。しかし、私はなぜdetachEvent()を呼び出すのか、初めて正確になぜイベントが削除されないのだろうと思っていました。それが病気です。しかし、提案に感謝します。 – Max