Fork me on GitHub
原生js事件的添加和删除

原生js事件的添加和删除

 

在IE浏览器中添加或删除事件用attachEvent、detachEvent。在其他标准浏览器中则用addEventListener、removeEventListener。下面的对事件的添加和删除做了封装。直接看代码吧!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 * @description 事件绑定,兼容各浏览器
 * @param target
 *            事件触发对象
 * @param type
 *            事件
 * @param func
 *            事件处理函数
 */
function bind(target, type, func) {
    if (target.addEventListener) {// 非ie 和ie9
        target.addEventListener(type, func, false);
    } else if (target.attachEvent) { // ie6到ie8
        target.attachEvent("on" + type, func);
    } else {
        target["on" + type] = func; // ie5
    }
}
/**
 * @description 事件移除,兼容各浏览器
 * @param target
 *            事件触发对象
 * @param type
 *            事件
 * @param func
 *            事件处理函数
 */
function unbind(target, type, func) {
    if (target.removeEventListener) {
        target.removeEventListener(type, func, false);
    } else if (target.detachEvent) {
        target.detachEvent("on" + type, func);
    } else {
        target["on" + type] = null;
    }
}

其他补充关于addEventListener第三个参数的含义,详细请参考https://blog.othree.net/log/2007/02/06/third-argument-of-addeventlistener/这篇文章说的很清楚了。

posted on 2014-07-01 14:42  HackerVirus  阅读(489)  评论(0编辑  收藏  举报