在 IE 中你必须使用attachEvent http://msdn.microsoft.com/en-us/library/ms536343(VS.85).aspx而不是标准addEventListener https://developer.mozilla.org/en/DOM/element.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');
});
您可以运行上面代码的示例here http://jsbin.com/ifuqa.
第三个参数addEventListener
is useCapture
;如果为真,则表明用户希望启动事件捕获 http://www.quirksmode.org/js/events_order.html.