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!