Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah `addEventListener` saya dicetuskan pada pemuatan halaman dan bukannya klik?

Mengapakah `addEventListener` saya dicetuskan pada pemuatan halaman dan bukannya klik?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 17:50:02312semak imbas

Why does my `addEventListener` trigger on page load instead of a click?

JavaScript "addEventListener" Peristiwa Terbakar pada Pemuatan Halaman [pendua]

Soalan:

Mengapakah skrip berikut menyebabkan acara dicetuskan pada pemuatan halaman dan bukannya apabila elemen diklik?

document.write("<div id=\"myDiv\">I am a div</div>");
el = document.getElementById("myDiv");
el.addEventListener("click", alert("clicktrack"), false);

Jawapan:

Isunya terletak pada sintaks pendaftaran pendengar acara. Baris:

el.addEventListener("click", alert("clicktrack"), false);

segera melaksanakan fungsi amaran dan menghantar nilai pulangan yang tidak ditentukan sebagai pengendali acara. Untuk menghantar kod amaran sebagai fungsi dengan betul, ia hendaklah dibalut dengan fungsi:

el.addEventListener("click", function() { alert("clicktrack"); }, false);

Dengan cara ini, amaran hanya akan dipanggil apabila elemen diklik, bukan pada pemuatan halaman.

Atas ialah kandungan terperinci Mengapakah `addEventListener` saya dicetuskan pada pemuatan halaman dan bukannya klik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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