zoukankan      html  css  js  c++  java
  • 自定义事件

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title> 自定义事件 </title>
    
    </head>
    <body>
    
    </body>
    </html>
    <script>
    function EventTarget(){
        this.handlers = {};
    }
    
    EventTarget.prototype = {
        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);
            }
        }
    
    }    
    
    function fn_message(event){
        alert(event.message);
    }
    
    var target = new EventTarget();
    target.addHandler('message',fn_message);
    target.fire({type:'message',message:'I love javascript'});
    target.removeHandler('message',fn_message);
    target.fire({type:'message',message:'I love javascript'});
    
    </script>
  • 相关阅读:
    EEPROM芯片AT2402驱动
    FPGA 状态机(FSM)的三段式推荐写法
    1602液晶驱动
    Bresenham快速画直线算法
    I2C总线驱动程序
    从数据库中取时间类型显示
    C# 页面关联类似模式窗口
    C# 页面javascript 页面跳转刷新
    网页有趣的时间显示控件
    DataSet
  • 原文地址:https://www.cnblogs.com/ayguo/p/3795510.html
Copyright © 2011-2022 走看看