js原生添加事件的方式:
1. 直接在html标签上添加
<div onclick="alert(‘div‘)">div</div>
2. 用dom的on...方法添加
document.getElementById(‘div‘).onclick = function () {alert(‘div‘)};
3. 用addEventListener或attachEvent添加
document.getElementById(‘div‘).addEventListener(‘click‘, function () {alert(‘div‘)}, false);
原生js事件绑定和事件移除
/**
* @description 事件绑定,兼容各浏览器
* @param target 事件触发对象
* @param type 事件
* @param func 事件处理函数
*/
function addEvents(target, type, func) {
if (target.addEventListener) //非ie 和ie9
target.addEventListener(type, func, false);
// addEventListener当然就是注册事件,她有三个参数,分别为:"事件名称", "事件回调", "捕获/冒泡"。最后一个参数是布尔型,true代表捕获事件,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 removeEvents(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;
};
/**btn.removeEventListener("事件名称", "事件回调", "捕获/冒泡");这和绑定事件的参数一样,详细说明下:
· 事件名称,就是说解除哪个事件呗。
· 事件回调,是一个函数,这个函数必须和注册事件的函数是同一个。
· 事件类型,布尔值,这个必须和注册事件时的类型一致。
*/