為父容器綁定點擊事件,子元素不會「擋住」事件,而是觸發事件冒泡至父容器。需在父容器處理器中判斷實際點擊目標。
<div id="parent">
父容器
<div id="child1">子元素 1</div>
<div id="child2">子元素 2</div>
</div>
<script src="jquery.min.js"></script>
<script>
$('#parent').click(function(e) {
console.log('點擊目標:', e.target.id);
if (e.target.id !== 'parent') {
console.log('點擊了子元素:', e.target.id);
// 根據 e.target 進行差異化處理
}
});
</script>
document.getElementById('parent').addEventListener('click', function(e) {
if (e.target !== this) {
console.log('子元素被點擊:', e.target.id);
}
});
若子元素有獨立處理邏輯且不想觸發父容器,可在子元素調用 e.stopPropagation()。
e.target 或 e.target.closest(selector) 精準識別觸發元素。理解事件流(捕獲→目標→冒泡)是前端事件處理的核心功力。