Rumah >hujung hadapan web >tutorial js >Mengapakah pendengar acara klik saya menyala pada pemuatan halaman dan bukannya apabila saya mengklik elemen?
addEventListener Event Triggers on Page Load
Dalam JavaScript, kaedah addEventListener() direka untuk mendaftarkan pendengar acara untuk elemen tertentu. Walau bagaimanapun, apabila cuba melampirkan pendengar klik pada elemen yang dicipta secara dinamik, sesetengah pembangun mungkin menghadapi gelagat pelik yang mana peristiwa itu berlaku apabila halaman dimuatkan dan bukannya apabila elemen itu diklik. Untuk merungkai isu ini, mari kita mendalami coretan kod dan pelaksanaannya.
Dalam skrip yang disediakan, elemen div HTML dengan ID "myDiv" dicipta menggunakan document.write(), diikuti dengan mendapatkan semula elemen menggunakan document.getElementById("myDiv"). Kemudian, kaedah addEventListener() digunakan untuk melampirkan pendengar acara untuk acara "klik" pada elemen yang diambil. Pendengar ditakrifkan sebagai amaran("clicktrack"), yang cuba memaparkan amaran dengan mesej "clicktrack."
Inti masalah terletak pada cara pengendali acara diserahkan kepada addEventListener(). Apabila menggunakan ungkapan fungsi, adalah penting untuk merangkum fungsi dalam kurungan untuk memastikan fungsi itu sendiri diluluskan dan bukannya nilai pulangannya. Dalam coretan kod, sintaks yang betul hendaklah:
el.addEventListener("click", function() { alert("clicktrack"); }, false);
Pengubahsuaian ini merangkumi panggilan amaran dalam fungsi, memastikan fungsi itu didaftarkan sebagai pengendali peristiwa dan bukannya nilai pulangan fungsi, yang akan menjadi tidak ditentukan. Akibatnya, acara hanya akan dicetuskan apabila elemen "myDiv" diklik, seperti yang dimaksudkan, dan bukannya pada pemuatan halaman.
Atas ialah kandungan terperinci Mengapakah pendengar acara klik saya menyala pada pemuatan halaman dan bukannya apabila saya mengklik elemen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!