Dalam usaha untuk menangkap nilai atribut kelas apabila klik, anda mungkin menghadapi masalah dengan kod JavaScript anda. Khususnya, line classname.addEventListener('click', myFunction(), false); gagal mendaftarkan pendengar acara pada elemen.
Untuk menangani masalah ini, mari analisa kod langkah demi langkah:
Kod Dibetulkan:
Untuk menangani isu ini, kita perlu melampirkan pendengar acara dengan betul pada setiap elemen yang dikembalikan oleh getElementsByClassName . Berikut ialah kod yang diperbetulkan:
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); }
Penjelasan Pembetulan:
Dalam ES6, penambahan gelung dan pendengar acara boleh dicapai dengan lebih ringkas:
Array.from(elements).forEach(function(element) { element.addEventListener('click', myFunction); });
Untuk pelayar lama, seperti IE6-8, pertimbangkan untuk menyemak kewujudan getElementsByClassName sebelum menggunakannya.
Atas ialah kandungan terperinci Mengapakah `classname.addEventListener(\'click\', myFunction(), false);` Berfungsi untuk Menambah Pendengar Acara pada Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!