Heim > Web-Frontend > js-Tutorial > Wie implementiert man einen Click-Event-Listener korrekt in einer JavaScript-Klasse?

Wie implementiert man einen Click-Event-Listener korrekt in einer JavaScript-Klasse?

Mary-Kate Olsen
Freigeben: 2024-12-02 12:31:15
Original
505 Leute haben es durchsucht

How to Correctly Implement a Click Event Listener on a JavaScript Class?

Implementieren eines Click-Event-Listeners für eine Klasse in JavaScript

In JavaScript sind Ereignis-Listener die bevorzugte Methode für die Verarbeitung von Benutzerinteraktionen. Beim Versuch, ein Attribut aus einem angeklickten Element abzurufen, bieten Listener einen effizienteren Ansatz als die Verwendung herkömmlicher Ereignishandler.

Im bereitgestellten Codeausschnitt:

var classname = document.getElementsByClassName("classname");

var myFunction = function() {
    var attribute = this.getAttribute("data-myattribute");
    alert(attribute);
};

classname.addEventListener('click', myFunction(), false);
Nach dem Login kopieren

Das Problem liegt darin, wie addEventListener aufgerufen wird. Die Ereignis-Listener-Funktion myFunction wird sofort ausgeführt, indem die Klammern dahinter hinzugefügt werden (myFunction()). Stattdessen sollte die Funktionsreferenz selbst als zweites Argument übergeben werden.

classname.addEventListener('click', myFunction, false);
Nach dem Login kopieren

Zusätzlich gibt getElementsByClassName eine Knotenliste und kein HTML-Element zurück. Um den Ereignis-Listener auf jedes Element in der Knotenliste anzuwenden, sollte er über Folgendes iteriert werden:

var elements = document.getElementsByClassName("classname");

for (var i = 0; i < elements.length; i++) {
    elements[i].addEventListener('click', myFunction);
}
Nach dem Login kopieren

In Browsern mit ES6-Unterstützung kann eine präzisere Lösung mit der forEach-Methode erreicht werden:

Array.from(elements).forEach(function(element) {
    element.addEventListener('click', myFunction);
});
Nach dem Login kopieren

Durch die Behebung dieser Anpassungen sollte der Code nun das Attribut des angeklickten Elements mithilfe eines JavaScript-Ereignis-Listeners korrekt erfassen, ohne auf externe Bibliotheken zurückgreifen zu müssen jQuery.

Das obige ist der detaillierte Inhalt vonWie implementiert man einen Click-Event-Listener korrekt in einer JavaScript-Klasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage