Heim >Web-Frontend >js-Tutorial >Wie kann ich JavaScript-Ereignis-Listener sicher aus ihren eigenen Handlern entfernen?
In JavaScript kann das Entfernen eines Ereignis-Listeners innerhalb der Definition desselben Ereignis-Handlers eine Herausforderung darstellen. Um dieses Problem anzugehen, sollten Sie die folgenden Strategien in Betracht ziehen:
Ein Ansatz beinhaltet die Verwendung benannter Funktionen:
var click_count = 0; function myClick(event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', myClick); } } // to add canvas.addEventListener('click', myClick);
Alternativ können Sie über eine indirekte Ereignisbehandlung über den Klickzähler schließen Muster:
var myClick = (function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', handler); } }; return handler; })(0); // to add canvas.addEventListener('click', myClick);
Wenn jedes Element seinen eigenen Zähler haben soll, können Sie einen Funktionsgenerator verwenden:
var myClick = function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', handler); } }; return handler; }; // to add canvas.addEventListener('click', myClick(0));
Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Ereignis-Listener sicher aus ihren eigenen Handlern entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!