JavaScript实现为指定对象添加多个事件处理程序的方法


Posted in Javascript onApril 17, 2015

本文实例讲述了JavaScript实现为指定对象添加多个事件处理程序的方法。分享给大家供大家参考。具体如下:

如果你希望对象点击的时候同时处理多个事情,可以使用下面的代码

/* Start of the multihandle Object...*/
function MultiHandle(owner){
 var my_handlers = new Array();
 var my_owner = owner;
 this.append = function(handler){
  my_handlers[my_handlers.length] = handler;
 }
 this.fire = function(evt){
  var i;
  for(i = 0; i < my_handlers.length; i++){
   my_owner.tempspace = my_handlers[i];
   my_owner.tempspace(evt);
  }
 }
}
/* End of the multihandle object*/
/* start of the object add event handler script */
 
/*This bit goes where you'd normally write...
... object.onmouseup = [event handler]...
... where [event handler] is an existing function ...
... that handles an event, or even an
... anonymous function.*/
if(typeof(MultiHandle) != "undefined"){
 var mup_handler = object.mh_onmouseup;
 if(!mup_handler){
  mup_handler = new MultiHandle(object);
  object.mh_onmouseup = mup_handler;
  object.onmouseup = function(evt){
  this.mh_onmouseup.fire(evt);
  };
 }
 mup_handler.append([event handler]);
}else{
 object.onmouseup = [event handler];
}

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
在JavaScript并非所有的一切都是对象
Apr 11 Javascript
JS执行删除前的判断代码
Feb 18 Javascript
jQuery截取指定长度字符串代码
Aug 21 Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
Oct 10 Javascript
JS基于面向对象实现的拖拽功能示例
Dec 20 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
May 17 Javascript
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
vue实现树形结构样式和功能的实例代码
Oct 15 Javascript
vue.js循环radio的实例
Nov 07 Javascript
解决vue请求接口第一次成功,第二次失败问题
Sep 08 Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
Apr 17 #Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 #Javascript
原生js实现移动开发轮播图、相册滑动特效
Apr 17 #Javascript
JavaScript实现简单图片翻转的方法
Apr 17 #Javascript
JavaScript实现将xml转换成html table表格的方法
Apr 17 #Javascript
JavaScript实现的简单幂函数实例
Apr 17 #Javascript
js面向对象之公有、私有、静态属性和方法详解
Apr 17 #Javascript
You might like
php格式化金额函数分享
2015/02/02 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
python批量制作雷达图的实现方法
2016/07/26 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
华为的Java面试题
2014/03/07 面试题
开学典礼感言
2014/02/16 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
2015年教师新年寄语
2014/12/08 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
vue打包时去掉所有的console.log
2022/04/10 Vue.js
nginx之queue的具体使用
2022/06/28 Servers