在 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,则表示用户希望启动事件捕获。