前面我们学习了事件冒泡,那么在DOM中与冒泡对应的就是捕获,让我们一起来学习捕获及应用吧。
什么是事件捕获?
捕获型事件(event capturing):事件从最不精确的对象(document 对象)开始触发,
然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定),简单来说就是由外向内的触发事件。
在这里我们顺便说说事件流,事件流分为事件冒泡和事件捕获。
冒泡 从里向外
捕获 从外向里(ie不支持 )
既有捕获 又有冒泡 先捕获 后冒泡(先从外到里 再从里向外)
<div id="div1">
111
<div id="div2">
222
</div>
</div>
<script>
var oDiv1 = document.getElementById('div1');
var oDiv2 = document.getElementById('div2');
// oDiv1.addEventListener('click',function(){
// console.log('div1 冒泡');
// },false)
// oDiv2.addEventListener('click',function(){
// console.log('div2 冒泡');
// },false)
oDiv1.addEventListener('click',function(){
console.log('div1 捕获');
},true)
oDiv2.addEventListener('click',function(){
console.log('div2 捕获');
},true)
oDiv1.addEventListener('click',function(){
console.log('div1 冒泡');
},false)
oDiv2.addEventListener('click',function(){
console.log('div2 冒泡');
},false)
</script>