IE与FF中添加事件通用方法
在考虑到IE中attachEvent的作用域问题(this指向window),可将方法改进如下:
function addEvent(obj,type,listener){
if (obj.addEventListener) {
obj.addEventListener(type,listener,false);
} else if (obj.attachEvent){
obj['e'+type+listener] = listener; //保证对象同名方法的唯一性
obj[type + listener] = function(){
obj['e'+ type + listener](window.event); //执行方法,传入event,不传入也可
if (obj.addEventListener) {
obj.addEventListener(type,listener,false);
} else if (obj.attachEvent){
obj['e'+type+listener] = listener; //保证对象同名方法的唯一性
obj[type + listener] = function(){
obj['e'+ type + listener](window.event); //执行方法,传入event,不传入也可
}
obj.attachEvent('on'+type,obj[type + listener]);//将事件parent object强行绑定到obj
} else {
obj['on'+type] = listener; //没考虑e传入,没什么用处(jquery中用此方法,不用上边那么复杂)
}
}
此方法来自John Resig...http://ejohn.org/projects/flexible-javascript-events/