首頁 >web前端 >js教程 >當嵌套 DOM 物件中觸發子事件時,如何阻止父事件處理程序執行?

當嵌套 DOM 物件中觸發子事件時,如何阻止父事件處理程序執行?

Susan Sarandon
Susan Sarandon原創
2024-11-24 08:45:11340瀏覽

How to Prevent Parent Event Handlers from Executing When a Child Event is Triggered in Nested DOM Objects?

在巢狀DOM 物件中維護事件進程

在事件處理程序在多個層級上定義的巢狀DOM 結構中,通常希望防止子事件被觸發時父事件處理程序的執行。考慮以下範例:

<div>
<pre class="brush:php;toolbar:false"><div>


在此結構中,按一下在任何div 元素上都會呼叫“func”函數。然而,有一個問題:點擊“b”或“c”會觸發被點擊的div及其父div“a”的“func”函數。

解決方案:事件傳播控制

jQuery 提供了一種防止事件在 DOM 樹上傳播的方法。透過在定義事件處理程序之前新增以下程式碼:

$('#a').add('#b').click(function(event) {
    event.stopPropagation();
});

您可以防止按一下「b」或「c」將事件傳播到其父級「a」。這確保了只有被點擊的子 div 的函數才會被執行。

透過控制事件傳播,您可以在巢狀 DOM 結構中維護所需的事件流並防止無意的函數執行。

以上是當嵌套 DOM 物件中觸發子事件時,如何阻止父事件處理程序執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:使用 defer 屬性優化外部函式庫:提高頁面速度下一篇:使用 defer 屬性優化外部函式庫:提高頁面速度

相關文章

看更多