最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript中自定义事件

来源:动视网 责编:小采 时间:2020-11-27 20:31:31
文档

javascript中自定义事件

javascript中自定义事件:自定义事件:用户可以指定事件类型,这个类型实际上就是一个字符串,然后为这个类型的事件指定事件处理函数,可以注册多个事件处理函数(用数组管理),调用时,从多个事件处理函数中找到再调用。function EventTarget(){ this.handlers={}; }
推荐度:
导读javascript中自定义事件:自定义事件:用户可以指定事件类型,这个类型实际上就是一个字符串,然后为这个类型的事件指定事件处理函数,可以注册多个事件处理函数(用数组管理),调用时,从多个事件处理函数中找到再调用。function EventTarget(){ this.handlers={}; }


自定义事件:用户可以指定事件类型,这个类型实际上就是一个字符串,然后为这个类型的事件指定事件处理函数,可以注册多个事件处理函数(用数组管理),调用时,从多个事件处理函数中找到再调用。

function EventTarget(){
 this.handlers={};
 }
 
 EventTarget.prototype={
 constructor:EventTarget,
 addHandler:function(type,handler){
 if(typeof this.handlers[type]=='undefined'){
 this.handlers[type]=new Array();
 }
 this.handlers[type].push(handler);
 },
 removeHandler:function(type,handler){
 if(this.handlers[type] instanceof Array){
 var handlers=this.handlers[type];
 for(var i=0,len=handlers.length;i<len;i++){
 if(handler[i]==handler){
 handlers.splice(i,1);
 break;
 }
 }
 }
 },
 trigger:function(event){
 if(!event.target){
 event.target=this;
 }
 if(this.handlers[event.type] instanceof Array){
 var handlers=this.handlers[event.type];
 for(var i=0,len=handlers.length;i<len;i++){
 handlers[i](event);
 }
 }
 }
 }

addHandler方法用于添加事件处理程序,removeHandler方法用于移除事件处理程序,所有的事件处理程序在属性handlers中统一存储管理。调用trigger方法触发一个事件,该方法接收一个至少包含type属性的对象作为参数,触发的时候会查找handlers属性中对应type的事件处理程序。写段代码测试一下。

function onClose(event){
 alert('message:'+event.message);
 }
 
 var target=new EventTarget();
 target.addHandler('close',onClose);
 
 //浏览器不能帮我们创建事件对象了,自己创建一个,自定义事件对象的属性
 var event={
 type:'close',
 message:'Page Cover closed!'
 };
 
 target.trigger(event);

文档

javascript中自定义事件

javascript中自定义事件:自定义事件:用户可以指定事件类型,这个类型实际上就是一个字符串,然后为这个类型的事件指定事件处理函数,可以注册多个事件处理函数(用数组管理),调用时,从多个事件处理函数中找到再调用。function EventTarget(){ this.handlers={}; }
推荐度:
标签: 如何 自定义 事件
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top