javascript 傳統事件模型構造的事件監(jiān)聽器實現代碼
更新時間:2010年05月31日 20:06:25 作者:
最近做東西需要添加大量的事件,而且要對所有事件進行比較細致的控制,于是便試著寫了個事件監(jiān)聽器。
代碼如下:
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。
復制代碼 代碼如下:
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。
相關文章
解讀CocosCreator源碼之引擎啟動與主循環(huán)
這篇文章主要介紹了CocosCreator源碼解讀之引擎啟動與主循環(huán),對CocosCreator感興趣的同學,可以研究參考一下2021-04-04原生態(tài)js,鼠標按下后,經過了那些單元格的簡單實例
下面小編就為大家?guī)硪黄鷳B(tài)js,鼠標按下后,經過了那些單元格的簡單實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08Javascript中 帶名 匿名 箭頭函數的重要區(qū)別(推薦)
這篇文章主要介紹了Javascript中 帶名 匿名 箭頭函數的重要區(qū)別,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-01-01