Posted in Javascript onMay 31, 2010
代码如下:
var br={}; br.eventRouter = {}; br.eventRouter.addListen = function(el,eventType,func){ if(!el.eventObjs){ el.eventObjs = {}; } if(!el.eventObjs[eventType]){ el.eventObjs[eventType]=[]; br.eventRouter.bindListen(el,eventType); } el.eventObjs[eventType].push(func); }; br.eventRouter.removeListen = function(el,eventType,func){ if(el.eventObjs && el.eventObjs[eventType]){ for(var i=0,len=el.eventObjs[eventType].length;i<len;i++){ var item = el.eventObjs[eventType][i]; if(func==item){ el.eventObjs[eventType].splice(i,1); return true; } } } return false; }; br.eventRouter.bindListen = function(el,eventType){ if(el.eventObjs && el.eventObjs[eventType]){ el[eventType] = function(e){ for(var i=0,len=el.eventObjs[eventType].length;i<len;i++){ var f = el.eventObjs[eventType][i]; f.call(el,e); } }; } };
代码比较简单,不做过多解释。也希望有兴趣的同学给出bug。
javascript 传统事件模型构造的事件监听器实现代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@