Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa addEventListener tidak berfungsi dalam IE8 dan Bagaimana untuk Membetulkannya?

Mengapa addEventListener tidak berfungsi dalam IE8 dan Bagaimana untuk Membetulkannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 17:40:30463semak imbas

Why Doesn't addEventListener Work in IE8 and How to Fix It?

addEventListener Tidak Berfungsi dalam IE8: Penyelesaian

Walaupun fungsinya yang meluas dalam penyemak imbas moden, addEventListener tidak berfungsi secara konsisten dalam Internet Explorer 8. Isu ini timbul apabila cuba membuat kotak pilihan secara dinamik dan melampirkan pendengar acara klik padanya.

Untuk menyelesaikan isu ini, kami boleh melaksanakan semakan bersyarat yang menentukan versi penyemak imbas. Jika keserasian dengan IE8 diperlukan, kami boleh menggunakan attachEvent dan bukannya addEventListener:

if (_checkbox.addEventListener) {
    _checkbox.addEventListener("click", setCheckedValues, false);
} else {
    _checkbox.attachEvent("onclick", setCheckedValues);
}

Inilah sebabnya pendekatan ini berfungsi:

  • attachEvent: Untuk versi IE sebelum IE9, attachEvent ialah kaedah yang sesuai untuk mendaftarkan pendengar acara. Ia melampirkan pendengar yang ditentukan pada EventTarget yang dipanggil.
  • addEventListener: Untuk IE9 dan yang lebih baru, serta pelayar moden yang lain, addEventListener ialah kaedah pilihan untuk pendaftaran acara.

Dengan memilih kaedah yang sesuai secara dinamik berdasarkan keserasian penyemak imbas, penyelesaian ini memastikan acara klik didaftarkan dengan betul dalam IE8 dan pelayar lain yang disokong.

Atas ialah kandungan terperinci Mengapa addEventListener tidak berfungsi dalam IE8 dan Bagaimana untuk Membetulkannya?. 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