【JavaScript代码实现二】通用的事件侦听器函数

本文介绍了一个JavaScript事件工具集,包括页面加载完成事件处理、事件绑定、事件移除、事件阻止及获取事件目标等功能,适用于不同浏览器环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 // event(事件)工具集,来源:github.com/markyun
 2 markyun.Event = {
 3     // 页面加载完成后
 4     readyEvent : function(fn) {
 5         if (fn==null) {
 6             fn=document;
 7         }
 8         var oldonload = window.onload;
 9         if (typeof window.onload != 'function') {
10             window.onload = fn;
11         } else {
12             window.onload = function() {
13                 oldonload();
14                 fn();
15             };
16         }
17     },
18     // 视能力分别使用dom0||dom2||IE方式 来绑定事件
19     // 参数: 操作的元素,事件名称 ,事件处理程序
20     addEvent : function(element, type, handler) {
21         if (element.addEventListener) {
22             //事件类型、需要执行的函数、是否捕捉
23             element.addEventListener(type, handler, false);
24         } else if (element.attachEvent) {
25             element.attachEvent('on' + type, function() {
26                 handler.call(element);
27             });
28         } else {
29             element['on' + type] = handler;
30         }
31     },
32     // 移除事件
33     removeEvent : function(element, type, handler) {
34         if (element.removeEnentListener) {
35             element.removeEnentListener(type, handler, false);
36         } else if (element.datachEvent) {
37             element.detachEvent('on' + type, handler);
38         } else {
39             element['on' + type] = null;
40         }
41     }, 
42     // 阻止事件 (主要是事件冒泡,因为IE不支持事件捕获)
43     stopPropagation : function(ev) {
44         if (ev.stopPropagation) {
45             ev.stopPropagation();
46         } else {
47             ev.cancelBubble = true;
48         }
49     },
50     // 取消事件的默认行为
51     preventDefault : function(event) {
52         if (event.preventDefault) {
53             event.preventDefault();
54         } else {
55             event.returnValue = false;
56         }
57     },
58     // 获取事件目标
59     getTarget : function(event) {
60         return event.target || event.srcElement;
61     },
62     // 获取event对象的引用,取到事件的所有信息,确保随时能使用event;
63     getEvent : function(e) {
64         var ev = e || window.event;
65         if (!ev) {
66             var c = this.getEvent.caller;
67             while (c) {
68                 ev = c.arguments[0];
69                 if (ev && Event == ev.constructor) {
70                     break;
71                 }
72                 c = c.caller;
73             }
74         }
75         return ev;
76     }
77 };

 

转载于:https://www.cnblogs.com/SHERO-Vae/p/5795999.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值