标签:style java color strong 问题 cti
网上找了半天没看到,都是基于ie attachEvent(有诸多的问题存在)来写的,所以手动写了个js模拟绑定事件希望能帮到需要的童鞋
addEvent = function(obj,type,fn){
if(obj.addEventListener) {//W3C
obj.addEventListener(type,fn,false);
}else if (obj.attachEvent) {//ie(期待它的灭亡)
if(!obj.events) obj.events = {};//创建事件存储哈希表,也是对之后的removeEvent所需要的全局变量
if(!this.EventId) this.EventId = 1;//初始化计数器
if(!obj.events[type]) {
obj.events[type] = [];//创建事件存储器
if(!obj[‘on‘+type]) obj.events[type][0] = fn;//判断第一次是否已经给别人了!!!!
}else{
for(var i in obj.events[type]) {//判断该事件添加的fn是否重复
if(obj.events[type][i] == fn) {
return false;
}
}
obj.events[type][this.EventId++] = fn;
}
obj[‘on‘+type] = function(){
var e = window.event;
for(var i in obj.events[type]) {
obj.events[type][i].call(this,e);//ie获取不到this和e所以通过call来获取对象this 以及事件event
}
}
}
}
removeEvent = function(obj,type,fn) {//删除事件这个在上面的基础上就比较容易点了
if(typeof obj.removeEventListener != ‘undefined‘) {
obj.removeEventListener(type,fn,false);
}else if (typeof obj.detachEvent != ‘undefined‘) {
for(var i in obj.events[type]) {
if(obj.events[type][i] == fn) delete obj.events[type][i];
}
}
}
原生js跨浏览事件绑定(移除)/javascript事件绑定(移除),布布扣,bubuko.com
原生js跨浏览事件绑定(移除)/javascript事件绑定(移除)
标签:style java color strong 问题 cti
原文地址:http://www.cnblogs.com/xxxdw/p/3833867.html