Mengapakah pendengar acara klik saya menyala pada pemuatan halaman dan bukannya apabila saya mengklik elemen?

Barbara Streisand
Lepaskan: 2024-10-27 08:31:02
asal
752 orang telah melayarinya

Why does my click event listener fire on page load instead of when I click the element?

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!