1.3 Event bubbling

  1. 先捕獲,再冒泡

  2. 當事件傳到 target 本身,沒有分捕獲跟冒泡

addEventListener函數有第三個參數,true代表把這個 listener 添加到捕獲階段false或是沒有傳就代表把這個 listener 添加到冒泡階段

取消事件傳遞

e.stopPropagation

$list.addEventListener('click', (e) => {
  console.log('list capturing', e.eventPhase);
  e.stopPropagation();
}, true)

取消瀏覽器預設行為

e.preventDefault 最常見的做法就是阻止超連結

// list_item_link 的冒泡
$list_item_link.addEventListener('click', (e) => {
  e.preventDefault();
}, false)

Last updated