var domutils = {
on:function(obj,type,handler){
if(obj.addEventListener){
obj.addEventListener(type,handler,false);
}
else if(obj.attachEvent){
if(!handler._d){
handler._d = {};//不用全局对象,就废了
}
var key = type + handler.toString();
if(!handler._d[key]){//开始的时候写成handler[key],而
handler._d[key] = function(evt){
return handler.call(evt.srcElement,evt||window.event);
}
obj.attachEvent("on"+type,handler._d[key]);
}
}else{
obj["on"+type]=handler;
}
},
//为什么没去掉事件呢?
un:function(obj,type,handler){
if(obj.removeEventListener){
obj.removeEventListener(type,handler,false);
}
else if(obj.detachEvent){
var key = type + handler.toString();
//alert(handler._d[key]) 而这里的取消事件时用的却是type,handler._d?handler._d[key]:handler,所以永远都是无能取消事件。
obj.detachEvent("on"+type,handler._d?handler._d