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 相关文章推荐
QQ邮箱的一个文本编辑器代码
Mar 14 Javascript
JQuery中的ready函数冲突的解决方法
May 17 Javascript
JavaScript中数组对象的那些自带方法介绍
Mar 12 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
Oct 18 Javascript
js取模(求余数)隔行变色
May 15 Javascript
Jquery中offset()和position()的区别分析
Feb 05 Javascript
微信小程序tabBar用法实例详解
Dec 04 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
Aug 13 Javascript
详解Vue中的基本语法和常用指令
Jul 23 Javascript
详解vue路由
Aug 05 Javascript
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 jQuery
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
一个简洁的多级别论坛
2006/10/09 PHP
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
打开电脑上的QQ的python代码
2013/02/10 Python
Python内置函数之filter map reduce介绍
2014/11/30 Python
python生成器与迭代器详解
2019/01/01 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
单位刻章介绍信范文
2014/01/11 职场文书
男女朋友协议书
2014/04/23 职场文书
我的理想演讲稿
2014/04/30 职场文书
英文慰问信范文
2015/03/24 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
跑吧孩子观后感
2015/06/10 职场文书
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python