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 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
Nov 05 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
AngularJS基础 ng-include 指令示例讲解
Aug 01 Javascript
jquery 正整数数字校验正则表达式
Jan 10 Javascript
bmob js-sdk 在vue中的使用教程
Jan 21 Javascript
Angular5集成eventbus的示例代码
Jul 19 Javascript
微信小程序生成海报分享朋友圈的实现方法
May 06 Javascript
vue props对象validator自定义函数实例
Nov 13 Javascript
vue2路由基本用法实例分析
Mar 06 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
Mar 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
电脑硬件及电脑配置知识大全
2020/03/17 数码科技
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
JavaScript静态的动态
2006/09/18 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
Python 元组操作总结
2019/09/18 Python
Python函数式编程实例详解
2020/01/17 Python
python 批量将中文名转换为拼音
2021/02/07 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
区三好学生主要事迹
2014/01/30 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
学校班班通实施方案
2014/06/11 职场文书
离婚协议书格式
2014/11/21 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python