首頁 > web前端 > js教程 > 為什麼我的 JS `li` onclick 不能在 IE8 工作?

為什麼我的 JS `li` onclick 不能在 IE8 工作?

Susan Sarandon
發布: 2024-11-27 18:28:16
原創
310 人瀏覽過

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

JS li onclick 無法在IE8 上運行

問題:

問題:在提供的程式碼中,li元素的Internet Explorer中未觸發點選事件8.

解決方案:

IE8不支援addEventListener。相反,請使用其非標準前身,attachEvent。

程式碼修改:
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.";
})();
登入後複製

首先,建立一個函數來處理事件連線:
hookEvent(document.getElementById("hd_vertical"), "click", function(e) {
    // Your event handling code here
});
登入後複製

接下來,使用這個函數來掛接事件監聽器:

var _url = document.querySelectorAll("." + id)[1].getAttribute('href');
登入後複製
注意:IE8 也缺乏對 getElementsByClassName 的支援。相反,使用 querySelectorAll 或 querySelector:

以上是為什麼我的 JS `li` onclick 不能在 IE8 工作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板