attachEvent方法适用于IE addEventListener方法适用于FF
二、针对的事件不同
attachEvent中的事件带on 而addEventListener中的事件不带on
三、参数的个数不同
attachEvent方法两个参数:第一个参数为事件名称,第二个参数为接收事件处理的函数; addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click");第二个参数表示要接收事件处理的函数;第三个参数是一个bool值,一般为false,第三个参数叫做useCapture,是一个boolean值,就是true or false,如果送出true的话就是瀏览器会使用Capture方式,false的话是Bubbling,只有在特定状况下才会有影响,通常建议是false
四、执行事件的优先级不同
五、对this的引用不同
holder_elem为dom
if (holder_elem.attachEvent) {
holder_elem.attachEvent('onfocus', function() {
placeEvent(holder_elem);
});
} else {
holder_elem.addEventListener('focus', function() {
placeEvent(this);
}, false);
}
此时attachEvent中,holder_elem依然为dom,而addEventListener中,holder_elem为Event对象,this指向了holder_elem