1. 事件高级
1.1 注册事件
1.1.1 注册事件概述
- 给元素添加事件,称为注册事件
- 注册事件有两种方式:传统方式和方法监听注册方式
1.1.1.1 传统注册方式
- 事件为on开头,如onclick
- 注册事件具有唯一性,后注册的函数会把先注册的覆盖
<body>
<button id="btn1">tradition</button>
<script>
var btn1 = document.querySelector('#btn1');
btn1.onclick = function () {
alert('hi');
};
btn1.onclick = function () {
alert('how are u')
};
</script>
</body>
1.1.1.2 方法监听注册方式
- w3c标准,同一个元素可以注册多个监听器,按注册顺序执行
- ie9前用attachEvent()代替
- eventTarget.addEventListener(type, listener, useCapture)
- type: 事件类型,click, mouseover…
- listener: 事件处理函数,事件发生时会调用该监听函数
- useCapture: 可选参数,布尔类型
<body>
<button id="btn2">standard</button>
<script>
var btn2 = document.querySelector('#btn2');
btn2.addEventListener('click', function () {
alert('hi');
})
btn2.addEventListener('click', function () {
alert('how are u');
})
</script>
</body>
1.2 删除事件
1.2.1 传统方式
- eventTarget.onclick = null
1.2.2方法监听方式
- eventTarget.removeEventListener(type, listener, useCapture)
- eventTarget.detachEvent(eventName, callback) (兼容ie9以前)
<body>
<button>button</button>
<script>
var btn = document.querySelector('button');
btn