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实现俄罗斯方块小游戏分享
Jan 31 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
简介JavaScript中fixed()方法的使用
Jun 08 Javascript
javascript禁止超链接跳转的方法
Feb 02 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
Oct 11 Javascript
js实现百度搜索提示框
Feb 05 Javascript
js获取元素下的第一级子元素的方法(推荐)
Mar 05 Javascript
Bootstrap Table使用整理(四)之工具栏
Jun 09 Javascript
JavaScript中附件预览功能实现详解(推荐)
Aug 15 Javascript
使用vue实现grid-layout功能实例代码
Jan 05 Javascript
深入浅析var,let,const的异同点
Aug 07 Javascript
layui use 定义js外部引用函数的方法
Sep 26 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
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
php判断邮箱地址是否存在的方法
2016/02/13 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
使用js如何实现全选与全不选
2013/12/30 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
javascript制作的滑动图片菜单
2015/05/15 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
Python getopt模块处理命令行选项实例
2014/05/13 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python2和python3哪个使用率高
2020/06/23 Python
python右对齐的实例方法
2020/07/05 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
社区八一活动方案
2014/02/03 职场文书
岗位职责说明书
2014/05/07 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2015年党总支工作总结
2015/05/25 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
使用python绘制横竖条形图
2022/04/21 Python