封装一个函数,实现事件绑定的兼容与解绑的兼容
元素.addEventListener(事件, 函数, 是否捕获)
元素.attachEvent(事件,函数)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#box{
width: 100px;
height: 100px;
background-color: red;
}
</style>
</head>
<body>
<div id="box"></div>
<script>
var box = document.getElementById('box');
// 需求:给同一个元素的同一个事件绑定不同的处理函数
function fn1() {
console.log(1);
}
function fn2() {
console.log(2);
}
// 封装一个函数,实现事件绑定的兼容
// 参数:元素 事件 函数
function bind(ele, event, callback) {
if (ele.addEventListener) {
//标准模式
ele.addEventListener(event, callback, false)
} else {
//ie8以下
ele.attachEvent('on' + event, callback)
}
}
//解绑的兼容
// 参数:元素 事件 函数
function unbind(ele,event,callback){
if(ele.removeEventListener){
//标准模式
ele.removeEventListener(event,callback,false);
}else{
//ie8以下
ele.detachEvent('on'+event,callback);
}
}
bind(box, 'click', fn1);
bind(box, 'click', fn2);
unbind(box,'click',fn2);
</script>
</body>
</html>