javascript 传统事件模型构造的事件监听器实现代码


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 相关文章推荐
一款JavaScript压缩工具:X2JSCompactor
Jun 13 Javascript
日期 时间js控件
May 07 Javascript
Asp.Net alert弹出提示信息的几种方法总结
Jan 29 Javascript
基于jquery的simpleValidate简易验证插件
Jan 31 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
JavaScript中最简洁的编码html字符串的方法
Oct 11 Javascript
JavaScript取得WEB安全颜色列表的方法
Jul 14 Javascript
基于datepicker定义自己的angular时间组件的示例
Mar 14 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
Jul 15 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
Oct 14 Javascript
JS错误处理与调试操作实例分析
Apr 13 Javascript
LazyLoad 延迟加载(按需加载)
May 31 #Javascript
基于jquery的气泡提示效果
May 31 #Javascript
niceTitle 基于jquery的超链接提示插件
May 31 #Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
May 31 #Javascript
jQuery 获取对象 定位子对象
May 31 #Javascript
jQuery 获取对象 基本选择与层级
May 31 #Javascript
javascript 判断数组是否已包含了某个元素的函数
May 30 #Javascript
You might like
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
Javascript中的apply()方法浅析
2015/03/15 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
Python专用方法与迭代机制实例分析
2014/09/15 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
临床医学专业学生的自我评价分享
2013/11/21 职场文书
4s客服专员岗位职责
2013/12/01 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
团购业务员岗位职责
2014/03/15 职场文书
作风转变心得体会
2014/09/02 职场文书
Python闭包的定义和使用方法
2022/04/11 Python
Python使用DFA算法过滤内容敏感词
2022/04/22 Python