首页 > 开发 > JS > 正文

通过原生JS实现为元素添加事件的方法

2024-05-06 16:33:06
字体:
来源:转载
供稿:网友

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

说明:

id : 目标元素的ID

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

fn:事件处理程序

isBubble :规定事件流

代码:

var bindEvent = {    'add':function(id,type,fn,isBubble){      var dom = document.getElementById(id);      if(!isBubble) isBubble=false;      if(dom.addEventListenner){        dom.addEventListenner(type,fn,isBubble);      }else if(dom.attachEvent){        Transit = function(){          fn.call(dom);        }        dom.attachEvent('on'+type,Transit);      }else{        dom['on'+type] = fn;      }    },    'remove':function(id,type,fn,isBubble){      var dom = document.getElementById(id);      if(!isBubble) isBubble=false;      if(dom.removeEventListenner){        dom.removeEventListenner(type,fn,isBubble)      }else if(dom.detachEvent){        dom.detachEvent('on'+type,Transit)      }else{        dom['on'+type]=null;      }    }  }

调用方法:

//定义事件处理程序 function msg(){  alert(this.tagName) } //为目标元素绑定事件 bindEvent.add('link','click',msg,false); //解除目标元素绑定的事件 bindEvent.remove('link','click',msg,false);

以上这篇通过原生JS实现为元素添加事件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表