JS li onclick이 IE8에서 작동하지 않습니다
문제:
제공된 코드에서 li 요소의 Internet Explorer에서 클릭 이벤트가 실행되지 않습니다. 8.
해결책:
IE8은 addEventListener를 지원하지 않습니다. 대신, 비표준 전신인 attachmentEvent를 사용하세요.
코드 수정:
먼저 이벤트 연결을 처리하는 함수를 만듭니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!