第 16 课 15 / 19 | 编码:L16-19
代码推演

点击按钮内的文字,谁是目标?

<div id="panel"><button id="go"><span id="icon">点击此文字</span></button></div>
<script>
  const panel = document.querySelector('#panel');
  const button = document.querySelector('#go');
  panel.addEventListener('click', () => console.log('父:捕获'), true);
  button.addEventListener('click', event => {
    console.log(event.target.id, event.currentTarget.id);
  });
  panel.addEventListener('click', () => console.log('父:冒泡'));
</script>

提问:只点击 span 文字时,按顺序写出三条输出。再点击按钮内部但 span 外的区域,哪两个 id 会变化?

查看参考解析

点击 span:父:捕获 → icon go → 父:冒泡。点击按钮自身区域时,中间变为 go go;target 随实际目标变化,currentTarget 在该按钮处理器内仍为 go。