事件
注册事件
给元素添加事件,为注册事件或者绑定事件
注册事件两种方式
- 传统方式
- 监听事件方式
事件监听
- addEventListener() 事件监听 (IE9以上)
eventTarget.addEventListener(type, listener, [useCapture])
- 参数type: 事件类型字符串,不要on 如click,mouseover
- 参数listener: 事件处理函数,触发的时候要做的事情
- 参数useCapture: 可选,是一个布尔值,默认false
- attacheEvent() 事件监听 (IE678支持)
evetagrget.attachEvent(eventNameWithOn, callback)
- 参数eventNameWithOn: 事件类型字符串,不要on 如click,mouseover
- 参数callback: 事件处理函数,触发的时候要做的事情

<body>
<button>传统注册事件</button>
<button>addEventListener ie9以上</button>
<button>attachEvent ie678</button>
<script>
var btns = document.querySelectorAll('button');
// 传统注册事件
btns[0].onclick = function () {
alert('传统方式')
};
// addEventListener 添加多个不覆盖
btns[1].addEventListener('click', function () {
alert('ddEventListener ie9以上')
});
btns[1].addEventListener('click', function () {
alert('ddEventListener ie9以上---2')
});
//attachEvent
btns[2].attachEvent('click', function () {
alert('attachEvent')
})
</script>
</body>
删除事件
- 传统方式
btns.onclick = null
- 方式删除监听事件
eventTarget.removeEventListener(type, listener, [useCapture])
- 参数type: 事件类型字符串,不要on 如click,mouseover
- 参数listener: 事件处理函数,触发的时候要做的事情
- 参数useCapture: 可选,是一个布尔值,默认false

<body>
<button>addEventListener ie9以上</button>
<button>attachEvent ie678</button>
<script>
var btns = document.querySelectorAll('button');
// addEventListener 添加多个不覆盖
btns[0].addEventListener('click', fn);
function fn() {
alert(222);
this.removeEventListener('click', fn)
}
//attachEvent
btns[1].attachEvent('click', fn1);
function fn1() {
alert(111);
this.detachEvent('click', fn1)
}
</script>
</body>
来源:https://www.cnblogs.com/py-web/p/12218609.html

