


Wie entferne ich einen Ereignis-Listener aus seiner eigenen Definition in JavaScript?
Dec 05, 2024 pm 02:13 PMEreignis-Listener in JavaScript entfernen
In JavaScript werden Ereignis-Listener häufig verwendet, um auf Benutzerinteraktionen zu reagieren. Es kann jedoch vorkommen, dass Sie diese Listener aus verschiedenen Gründen entfernen müssen.
Problem:
Sie möchten einen Ereignis-Listener aus der Definition des entfernen Zuhörer selbst. Versuche, „this“ im Listener zu verwenden, führen jedoch zu Fehlern.
Lösung 1: Benannte Funktionen
Um dieses Problem zu lösen, verwenden Sie benannte Funktionen anstelle anonymer Funktionen :
var click_count = 0; function myClick(event) { click_count++; if (click_count == 50) { // Remove the event listener canvas.removeEventListener('click', myClick); } } // Add the event listener canvas.addEventListener('click', myClick);
In dieser Lösung wird die Variable „click_count“ außerhalb des Listeners definiert, um ihre Sichtbarkeit innerhalb der Funktion sicherzustellen. Außerdem ist „myClick“ eine benannte Funktion, die es ermöglicht, sie später zu entfernen.
Lösung 2: Schließung
Alternativ können Sie Schließungen verwenden, um dies zu erreichen:
var myClick = (function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // Remove the event listener canvas.removeEventListener('click', handler); } }; return handler; })(0); // Add the event listener canvas.addEventListener('click', myClick);
Bei diesem Ansatz wird ein Abschluss um die Variable „click_count“ erstellt. Die Funktion „Handler“ erhöht den Zähler und entfernt bei Bedarf den Ereignis-Listener.
Lösung 3: Einzelne Zähler
Wenn jedes Element einen eigenen Zähler benötigt, verwenden Sie diese Lösung :
var myClick = function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // Remove the event listener canvas.removeEventListener('click', handler); } }; return handler; }; // Add the event listener with a unique click counter for each element canvas.addEventListener('click', myClick(0));
Das obige ist der detaillierte Inhalt vonWie entferne ich einen Ereignis-Listener aus seiner eigenen Definition in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Ersetzen Sie Stringzeichen in JavaScript

Benutzerdefinierte Google -Search -API -Setup -Tutorial

8 atemberaubende JQuery -Seiten -Layout -Plugins

Erstellen Sie Ihre eigenen AJAX -Webanwendungen

10 JavaScript & JQuery MVC -Tutorials
