前面我們學習了事件冒泡,那麼在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>