在IE中,您必须使用attachEvent而不是标准addEventListener。
一种常见的做法是检查该addEventListener方法是否可用并使用它,否则使用attachEvent:
if (el.addEventListener){
el.addEventListener('click', modifyText, false);
} else if (el.attachEvent){
el.attachEvent('onclick', modifyText);
}
您可以创建一个函数来做到这一点:
function bindEvent(el, eventName, eventHandler) {
if (el.addEventListener){
el.addEventListener(eventName, eventHandler, false);
} else if (el.attachEvent){
el.attachEvent('on'+eventName, eventHandler);
}
}
bindEvent(document.getElementById('myElement'), 'click', function () {
alert('element clicked');
});
您可以在此处运行上述代码的示例。
第三个论点addEventListener是useCapture;如果为true,则表示用户希望启动事件捕获。
useCapture非常好:coding.smashingmagazine.com/2013/11/12/...