这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
下面小编就为大家带来一篇通过原生 JS 实现为元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
自己写了一个为元素添加事件的方法,并封装到对象中。
说明:
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 实现为元素添加事件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0521/330253.html