Ich habe Schwierigkeiten, das Ereignis aus dem Fenster zu entfernen, und ich kann nicht herausfinden, warum es nicht funktioniert. Ich habe eine Funktion, in der ich ein Ereignis zum Fenster hinzufüge.Das Ereignis wird nicht aus dem Fenster entfernt
Test.prototype.func1 = function(){
this.func2 = function(){
// do something
};
window.addEventListener("event1", this.func2, true);
};
Jetzt habe ich eine exit
Funktion (die, wenn ich diese bestimmte Register verlassen genannt wird), von wo aus ich detachEvent()
nenne, in dem ich meine Veranstaltung aus dem Fenster bin zu entfernen.
Test.prototype.exit = function(){
this.detachEvent();
}
Und meine detachEvent
Funktion ist
Test.prototype.detachEvent() = function(){
window.removeEventListener("event1", this.func2, true);
}
Nun ist das Problem entsteht, weil mein Code ist Teil eines größeren Projekts ist und irgendwie ist func1
zweimal aufgerufen wird. So wird event1
zweimal zum Fenster hinzugefügt. also keine doppelten Ereignis habe ich sogar versucht, detachEvent()
Aufruf vor Ereignis Fenster wie
Test.prototype.func1 = function(){
this.func2 = function(){
// do something
}
this.detachEvent();
window.addEventListener("event1", this.func2, true);
}
Aber das Ereignis nicht entfernt wurden, wenn detachEvent()
von innen func1()
Zugabe genannt wird immer, aber es ist zu arbeiten, wenn detachEvent()
heißt immer von Ausgang().
Mein Code funktioniert in Fällen, in denen Ereignis nicht zweimal hinzugefügt wird, aber hier funktioniert es nicht. Ich bin nicht in der Lage, den Grund herauszufinden, und jede Hilfe wird sehr geschätzt.
Hallo @Austio, Das macht die Sache funktioniert. Danke für den Vorschlag. Aber das ist eine Art Arbeit für das Problem. Aber ich habe mich gefragt, warum genau beim ersten Aufruf von detachEvent() das Ereignis nicht entfernt wird. Das ist die Krankheit. Aber danke für den Vorschlag. – Max