绑定事件
addEventListener:W3C标准写法IE不兼容
attachEvent:兼容IE
注意:1:事件名不同:IE下要加“on“,W3C不加
2:加载事件的执行顺序不同,W3C按绑定事件的顺序来执行,而IE6,7是后绑定的时间先发生
3:this的指向,W3C中,绑定函数中的this指向DOM对象,而IE6,7指向WINDOWS对象
var addEvent = function( obj, type, fn ) { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj.attachEvent( "on"+type, function() { obj["e"+type+fn](); } ); } };
另一个实现
var addEvent = (function () {
if (document.addEventListener) {
return function (el, type, fn) {
el.addEventListener(type, fn, false);
};
} else {
return function (el, type, fn) {
el.attachEvent('on' + type, function () {
return fn.call(el, window.event);
});
}
}
})();