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

作者:白露

时间:2026-10-29

浏览:497

本文介绍一种JavaScript实现方式,允许为指定对象同时绑定多个事件处理程序。通过自定义MultiHandle类管理多个回调函数,并在触发事件时依次执行所有注册的处理器,从而简化复杂交互逻辑的开发。

文章目录

JavaScript多事件处理程序实现

本文介绍一种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程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章