• 通过原生JS实现为元素添加事件


    自己写了一个为元素添加事件的方法,并封装到对象中。

    说明:

      id : 目标元素的ID

      type: 事件的类型,注意的是不能加on

       fn:事件处理程序

         isBubble :规定事件流

    代码:

     1     var bindEvent = {
     2 
     3         'add':function(id,type,fn,isBubble){
     4 
     5             var dom = document.getElementById(id);
     6             if(!isBubble) isBubble=false;
     7             if(dom.addEventListenner){
     8                 dom.addEventListenner(type,fn,isBubble);
     9             }else if(dom.attachEvent){
    10                 Transit = function(){
    11                     fn.call(dom);
    12                 }
    13                 dom.attachEvent('on'+type,Transit);
    14             }else{
    15                 dom['on'+type] = fn;
    16             }
    17         },
    18         'remove':function(id,type,fn,isBubble){
    19             var dom = document.getElementById(id);
    20             if(!isBubble) isBubble=false;
    21             if(dom.removeEventListenner){
    22                 dom.removeEventListenner(type,fn,isBubble)
    23             }else if(dom.detachEvent){
    24                 dom.detachEvent('on'+type,Transit)
    25             }else{
    26                 dom['on'+type]=null;
    27             }
    28 
    29         }
    30 
    31     }

    调用方法:

      //定义事件处理程序
     function msg(){
        alert(this.tagName)
     }
    //为目标元素绑定事件 bindEvent.add('link','click',msg,false); //解除目标元素绑定的事件 bindEvent.remove('link','click',msg,false);
  • 相关阅读:
    poj 1262 地板覆盖问题
    混合图 (Standard IO)
    matrix
    麻将 (Standard IO)
    C#多线程编程之:异步事件调用
    使用线程池与专用线程
    C#多线程编程之:Timer(定时器)使用示例
    C#多线程编程之:异步方法调用
    WCF 快速入门
    c#实现每隔一段时间执行代码(多线程)
  • 原文地址:https://www.cnblogs.com/HCJJ/p/5009520.html
Copyright © 2020-2023  润新知