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 相关文章推荐
jquery入门—编写一个导航条(可伸缩)
Jan 07 Javascript
js 3种归并操作的实例代码
Oct 30 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
深入浅析javascript立即执行函数
Oct 23 Javascript
jQuery实现的tab标签切换效果示例
Sep 05 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
Mar 08 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
Aug 15 Javascript
详解cordova打包成webapp的方法
Oct 18 Javascript
vue-cli实现多页面多路由的示例代码
Jan 30 Javascript
JavaScript 中的12种循环遍历方法【总结】
May 31 Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 Javascript
微信小程序云开发如何使用npm安装依赖
May 18 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
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
php数组键名技巧小结
2015/02/17 PHP
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
js实现日期级联效果
2014/01/23 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
python学习数据结构实例代码
2015/05/11 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
python实现邮件循环自动发件功能
2020/09/11 Python
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
家长会演讲稿范文
2014/01/10 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
工商干部先进事迹
2014/05/14 职场文书
家长给学校的建议书
2014/05/15 职场文书
关键在于落实心得体会
2014/09/03 职场文书
农村文化建设标语
2014/10/07 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
mysql查询结果实现多列拼接查询
2022/04/03 MySQL
vue的项目如何打包上线
2022/04/13 Vue.js
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android