Heim > Web-Frontend > js-Tutorial > Warum funktioniert mein JS „li' onclick im IE8 nicht?

Warum funktioniert mein JS „li' onclick im IE8 nicht?

Susan Sarandon
Freigeben: 2024-11-27 18:28:16
Original
310 Leute haben es durchsucht

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

JS li onclick funktioniert nicht unter IE8

Problem:
Im bereitgestellten Code ist das li-Element Das Klickereignis wird im Internet Explorer nicht ausgelöst 8.

Lösung:

IE8 unterstützt addEventListener nicht. Verwenden Sie stattdessen seinen nicht standardmäßigen Vorgänger, attachmentEvent.

Codeänderung:

Erstellen Sie zunächst eine Funktion zur Verarbeitung der Ereignisverknüpfung:

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.";
})();
Nach dem Login kopieren

Verwenden Sie als Nächstes diese Funktion, um das Ereignis einzubinden Listener:

hookEvent(document.getElementById("hd_vertical"), "click", function(e) {
    // Your event handling code here
});
Nach dem Login kopieren

Hinweis:
IE8 bietet auch keine Unterstützung für getElementsByClassName. Verwenden Sie stattdessen querySelectorAll oder querySelector:

var _url = document.querySelectorAll("." + id)[1].getAttribute('href');
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum funktioniert mein JS „li' onclick im IE8 nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage