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 相关文章推荐
jquery1.83 之前所有与异步列队相关的模块详细介绍
Nov 13 Javascript
js保留两位小数使用toFixed实现
Jul 29 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
jQuery实现折线图的方法
Feb 28 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
JS基于面向对象实现的拖拽库实例
Sep 24 Javascript
深入理解vue路由的使用
Mar 24 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
JavaScript实现删除数组重复元素的5种常用高效算法总结
Jan 18 Javascript
基于vue中解决v-for使用报红并出现警告的问题
Mar 03 Javascript
vue实现引入本地json的方法分析
Jul 12 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
Sep 23 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2013/01/22 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
javascript 数组操作详解
2015/01/29 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
Python 创建子进程模块subprocess详解
2015/04/08 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
学习python分支结构
2019/05/17 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
应届生自我鉴定
2013/12/11 职场文书
浪费资源的建议书
2014/03/12 职场文书
质量安全标语
2014/06/07 职场文书
cf战队收人口号
2014/06/21 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
大一学生个人总结
2015/02/15 职场文书
刑事法律意见书
2015/06/04 职场文书
企业安全生产检查制度
2015/08/06 职场文书
安全学习心得体会范文
2016/01/18 职场文书
golang特有程序结构入门教程
2021/06/02 Python
浅谈Python中的正则表达式
2021/06/28 Python