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 相关文章推荐
JS检测图片大小的实例
Aug 21 Javascript
JavaScript定义类的几种方式总结
Jan 06 Javascript
jQuery插件expander实现图片翻转特效
May 21 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
Aug 21 Javascript
jquery制作属于自己的select自定义样式
Nov 23 Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
Dec 16 Javascript
Jquery中attr与prop的区别详解
May 27 jQuery
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
vue中遇到的坑之变化检测问题(数组相关)
Oct 13 Javascript
vue写一个组件
Apr 09 Javascript
vue中进行微博分享的实例讲解
Oct 14 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函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
php实现Mysql简易操作类
2015/10/11 PHP
PHP函数超时处理方法
2016/02/14 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
IE6 fixed的完美解决方案
2011/03/31 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Django与JS交互的示例代码
2017/08/23 Python
Python算法之图的遍历
2017/11/16 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
python同时替换多个字符串方法示例
2019/09/17 Python
windows下python安装pip方法详解
2020/02/10 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
如何用python 操作zookeeper
2020/12/28 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
老乡聚会通知
2015/04/23 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis
python开发的自动化运维工具ansible详解
2021/08/07 Python
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript