elem.attachEvent(“on” + type, handle);
}
//吧函数放到元素的该事件的列表里面
handlers[handler.guid] = handler;
});
elem = null;
}
}
gevent.hander是绑定事件真正执行的函数
在gevent.hander里面也有取.特殊命名的地方 但是不知道做什么用的
hander里面先对event进行包装
包装见gevent. fix 和 setEvent
主要是对做一个原生event的一个copy 然后把不兼容的方法 都合成兼容的写法
然后取元素的events (事件列表)
然后遍历这个事件列表 判断type是不是事件列表的key 是的话就执行事件
在执行列表函数的时候会判断返回值
如果返回false 还可以组织事件冒泡 和 默认行为
win.gevent = {
handle : function(event){
var all, handlers;
//包装event
event = arguments[0] = gevent.fix( event || window.event );
event.currentTarget = this;
//这里的……..
var namespaces = event.type.split(“.”);
event.type = namespaces.shift();
all = !namespaces.length;
var namespace = RegExp(“(^|.)” + namespaces.slice().sort().join(“.*.”) + “(.|$)”);
//取这个元素的该行为 的 事件列表
handlers = (data(this, “events”) || {} )[event.type];










