在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/...