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

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

Susan Sarandon
發布: 2024-11-24 08:45:11
原創
239 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板