Bei der Suche nach der Erfassung von Klassenattributwerten bei Klicks ist möglicherweise ein Problem mit Ihrem JavaScript-Code aufgetreten. Insbesondere die Zeile classname.addEventListener('click', myFunction(), false); Es können keine Ereignis-Listener für die Elemente registriert werden.
Um dieses Problem zu beheben, analysieren wir den Code Schritt für Schritt:
Korrigierter Code:
Um das Problem zu beheben, müssen wir Ereignis-Listener korrekt an jedes von getElementsByClassName zurückgegebene Element anhängen . Hier ist der korrigierte Code:
var elements = document.getElementsByClassName("classname"); var myFunction = function() { var attribute = this.getAttribute("data-myattribute"); alert(attribute); }; for (var i = 0; i < elements.length; i++) { elements[i].addEventListener('click', myFunction, false); }
Erklärung der Korrektur:
In ES6 kann das Hinzufügen von Schleifen und Ereignis-Listenern besser erreicht werden Kurz gesagt:
Array.from(elements).forEach(function(element) { element.addEventListener('click', myFunction); });
Bei älteren Browsern wie IE6-8 sollten Sie vor der Verwendung prüfen, ob getElementsByClassName vorhanden ist.
Das obige ist der detaillierte Inhalt vonWarum funktioniert „classname.addEventListener(\'click\', myFunction(), false);' nicht beim Hinzufügen von Ereignis-Listenern zu Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!