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

     1 //自定义事件
     2  function EventTarget() {
     3      this.handlers = {};
     4  }
     5  EventTarget.prototype = {
     6      constructor: EventTarget,
     7      //注册
     8      addHandler: function(type, handler) {
     9          if (typeof this.handlers[type] == "undefined") {
    10              this.handlers[type] = [];
    11          }
    12          this.handlers[type].push(handler);
    13      },
    14      //触发
    15      fire: function(event) {
    16          if (!event.target) {
    17              event.target = this;
    18          }
    19          if (this.handlers[event.type] instanceof Array) {
    20              var handlers = this.handlers[event.type];
    21              for (var i = 0, len = handlers.length; i < len; i++) {
    22                  handlers[i](event);
    23              }
    24          }
    25      },
    26      //注销
    27      removeHandler: function(type, handler) {
    28          if (this.handlers[type] instanceof Array) {
    29              var handlers = this.handlers[type];
    30              for (var i = 0, len = handlers.length; i < len; i++) {
    31                  if (handlers[i] === handler) {
    32                      break;
    33                  }
    34              }
    35              handlers.splice(i, 1);
    36          }
    37      }
    38  };
     1 //使用方法
     2  function handleMessage(event) {
     3      alert("Message received: " + event.message);
     4  }
     5  //创建一个新对象
     6  var target = new EventTarget();
     7  //添加一个事件处理程序
     8  target.addHandler("message", handleMessage);
     9  //触发事件
    10  target.fire({
    11      type: "message",
    12      message: "Hello world!"
    13  });
    14  //删除事件处理程序
    15  target.removeHandler("message", handleMessage);
    16  //再次,应没有处理程序
    17  target.fire({
    18      type: "message",
    19      message: "Hello world!"
    20  });
  • 相关阅读:
    摄像头标定
    Call PDF to Vector Converter Command Line from C#, ASP, etc. web program languages
    Camera Calibration and 3D Reconstruction
    C++获取一个文件夹下的所有文件名(转)
    javascript学习之对象应用
    javascript中Array对象总结
    Joomla学习之模块
    关于ci中的表单提交问题
    phpcms之文件目录
    jQuery中的join方法
  • 原文地址:https://www.cnblogs.com/qzsonline/p/2547895.html
Copyright © 2011-2022 走看看