Maison  >  Article  >  interface Web  >  Pourquoi addEventListener ne fonctionne-t-il pas dans IE8 et comment y remédier ?

Pourquoi addEventListener ne fonctionne-t-il pas dans IE8 et comment y remédier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 17:40:30463parcourir

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

addEventListener ne fonctionne pas dans IE8 : solution

Malgré sa fonctionnalité répandue dans les navigateurs modernes, addEventListener ne fonctionne pas systématiquement dans Internet Explorer 8. Ce problème survient lorsque vous tentez de créer dynamiquement des cases à cocher et d'y attacher des écouteurs d'événements de clic.

Pour résoudre ce problème, nous pouvons implémenter une vérification conditionnelle qui détermine la version du navigateur. Si la compatibilité avec IE8 est requise, nous pouvons utiliser attachEvent au lieu de addEventListener :

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

Voici pourquoi cette approche fonctionne :

  • attachEvent : Pour les versions d'IE antérieures à IE9, attachEvent est la méthode appropriée pour enregistrer les écouteurs d'événements. Il attache l'écouteur spécifié à l'EventTarget sur lequel il est appelé.
  • addEventListener : Pour IE9 et versions ultérieures, ainsi que pour d'autres navigateurs modernes, addEventListener est la méthode préférée pour l'enregistrement des événements.

En sélectionnant dynamiquement la méthode appropriée en fonction de la compatibilité du navigateur, cette solution garantit que les événements de clic sont correctement enregistrés dans IE8 et les autres navigateurs pris en charge.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn