js自定义事件

来源:互联网 发布:c语言int main void 编辑:程序博客网 时间:2024/06/04 18:09
 <script type="text/javascript">        //自定义事件;事件是一种叫做观察者的设计模式                function EventTarget(){          this.handlers={};//函数处理器数组        }        EventTarget.prototype={        constructor:EventTarget,//手动指定constructor为EventTarget        addHandler:function(type,handler){//添加一个事件处理器        if(typeof this.handlers[type] == "undefined"){        this.handlers[type]=[];        }        this.handlers[type].push(handler);        },        fire: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);        }        }        },        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(handlers[i]===handler){        break;        }        }        handlers.splice(i,1);//删除指定的handler处理器        }        }        }                        function handleMessage(event){        alert(event.message);        }        var event_target=new EventTarget();        event_target.addHandler("message", handleMessage);       //event_target.removeHandler("message", handleMessage);        event_target.fire({type:"message",message:"hello world!"});     </script>


原创粉丝点击