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 });
注意:
IE8 也缺乏对 getElementsByClassName 的支持。相反,使用 querySelectorAll 或 querySelector:
var _url = document.querySelectorAll("." + id)[1].getAttribute('href');
以上是为什么我的 JS `li` onclick 不能在 IE8 中工作?的详细内容。更多信息请关注PHP中文网其他相关文章!