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

    自定义事件:让一个函数能够具备事件的某些特性。主要是跟函数有关。

    我们都知道,相同名字的函数会被覆盖,如:

    function show(){
      alert(1);
    }
    
    function show(){
      alert(2);
    }
    
    function show(){
      alert(3);
    }
    
    show()    //这时只会弹出3,因为最后定义的show函数将前边的覆盖了。

    当我们换一种写法,将它写成事件的样子,就不会覆盖:

    window.addEventListener('show',function(){
      alert(1);
    },false);
    
    window.addEventListener('show',function(){
      alert(2);
    },false);
    
    window.addEventListener('show',function(){
      alert(3);
    },false);
    
    show();   //触发自定义事件

    其实show还是函数,只是让它具有了事件的特性。这样添加的事件不会覆盖。

    自定义事件:

    //添加自定义事件

    function addEvent(obj,events,fn){
      obj.handlers=obj.handlers||{};
      obj.handlers[events]=obj.handlers[events] || [];
      obj.handlers[events].push(fn);
      if(obj.addEventListerner){
        obj.addEventListerner(events,fn,false);
      }eles{
        obj.attachEvent('on'+events,fn);
      }
    }

    //主动触发自定义事件

    function fireEvent(obj,events){
    
      if(obj.handlers[events]) {
    
        for (var i=0;i<obj.handlers[events].length;i++){
    
          obj.handlers[events][i]();
    
        }
    
      }
    
    }
    
    addEvent(oDiv,'show',function(){
    
      alert(3);
    
    });
    
    addEvent(oDiv,'show',function(){
    
      alert(4);
    
    });
    
    fireEvent(oDiv,'show');    //3,4
  • 相关阅读:
    OC学习13——Foundation框架中的集合
    OC学习12——字符串、日期、日历
    OC学习11——循环引用与@class
    OC学习10——内存管理
    OC学习9——反射机制
    OC学习8——异常处理
    OC学习7——类别、扩展和协议
    OC学习6——面相对象的三大特性
    OC学习5——类和对象
    Unity3D应用防外挂与防破解
  • 原文地址:https://www.cnblogs.com/telnetzhang/p/5822838.html
Copyright © 2011-2022 走看看