Maison > interface Web > js tutoriel > Pourquoi mes gestionnaires d'événements `` onclick échouent-ils dans IE8 et comment puis-je les réparer ?

Pourquoi mes gestionnaires d'événements `` onclick échouent-ils dans IE8 et comment puis-je les réparer ?

Linda Hamilton
Libérer: 2024-11-28 07:11:10
original
801 Les gens l'ont consulté

Why Do My `` onclick Event Handlers Fail in IE8, and How Can I Fix Them?

Problèmes d'écoute d'événements "Onclick" IE8 avec

  • Balises

    Lors de l'utilisation du code JavaScript fourni dans IE8, le gestionnaire d'événements "onclick" pour

  • les éléments peuvent ne pas fonctionner comme prévu. Ce problème provient du manque de prise en charge de la méthode "addEventListener" dans IE8 et les versions antérieures du navigateur.

    Solution :

    Pour résoudre ce problème, une solution de contournement impliquant le prédécesseur non standard de "addEventListener" dans IE8, à savoir "attachEvent", peut être utilisé. Voici une version modifiée du code JavaScript qui utilise cette méthode :

    hookEvent(document.getElementById("hd_vertical"), "click", function(e) {
            if(e.target.nodeName == "LI") { 
                var _anchor = e.target.id;
                changeLocation(_anchor);
            } else if(e.target.nodeName == "SPAN") {
                var span = e.target;
                var li = span.parentNode;
                var _anchor = li.id;   
                changeLocation(_anchor);
        }
    });
    Copier après la connexion

    Voici comment fonctionne ce code :

    • hookEvent : Cette fonction vérifie le disponibilité de "addEventListener" ou "attachEvent" et utilise la version appropriée pour le navigateur.
    • OldIEHookEvent : Cette fonction attache des gestionnaires d'événements aux éléments à l'aide de "attachEvent" dans IE8 et les navigateurs antérieurs. Il remplit également les fonctions manquantes telles que "preventDefault" et "stopPropagation".

    Remarque : IE8 ne prend pas non plus en charge "getElementsByClassName". Pensez à utiliser "querySelector" ou "querySelectorAll" à la place :

    var _url = document.querySelector("." + id).getAttribute('href');
    Copier après la connexion

    En implémentant ces modifications, les gestionnaires d'événements "onclick" pour

  • les éléments devraient désormais fonctionner correctement dans IE8.

    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!

  • source:php.cn
    Déclaration de ce site Web
    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
    Derniers articles par auteur
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal