Maison > interface Web > js tutoriel > Pourquoi mon JS `li` onclick ne fonctionne-t-il pas dans IE8 ?

Pourquoi mon JS `li` onclick ne fonctionne-t-il pas dans IE8 ?

Susan Sarandon
Libérer: 2024-11-27 18:28:16
original
312 Les gens l'ont consulté

Why Isn't My JS `li` onclick Working in IE8?

JS li onclick ne fonctionne pas sur IE8

Problème :
Dans le code fourni, l'élément li l'événement click ne se déclenche pas dans Internet Explorer 8.

Solution :

IE8 ne prend pas en charge addEventListener. Utilisez plutôt son prédécesseur non standard, attachEvent.

Modification du code :

Tout d'abord, créez une fonction pour gérer la connexion aux événements :

var hookEvent = (function() {
    var div;
    function standardHookEvent(element, eventName, handler) {
        element.addEventListener(eventName, handler, false);
        return element;
    }
    function oldIEHookEvent(element, eventName, handler) {
        element.attachEvent("on" + eventName, function(e) {
            e = e || window.event;
            e.preventDefault = oldIEPreventDefault;
            e.stopPropagation = oldIEStopPropagation;
            handler.call(element, e);
        });
        return element;
    }
    function oldIEPreventDefault() {
        this.returnValue = false;
    }
    function oldIEStopPropagation() {
        this.cancelBubble = true;
    }
    div = document.createElement('div');
    if (div.addEventListener) {
        div = undefined;
        return standardHookEvent;
    }
    if (div.attachEvent) {
        div = undefined;
        return oldIEHookEvent;
    }
    throw "Neither modern event mechanism (addEventListener nor attachEvent) is supported by this browser.";
})();
Copier après la connexion

Ensuite, utilisez cette fonction pour connecter l'événement auditeur :

hookEvent(document.getElementById("hd_vertical"), "click", function(e) {
    // Your event handling code here
});
Copier après la connexion

Remarque :
IE8 ne prend pas non plus en charge getElementsByClassName. Utilisez plutôt querySelectorAll ou querySelector :

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

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