代码推演
点击按钮内的文字,谁是目标?
<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。