您好,登錄后才能下訂單哦!
這篇文章主要介紹JavaScript中事件冒泡的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
事件冒泡剛好與事件捕獲相反,當前元素---->body ----> html---->document ---->window
。當事件發生在DOM元素上時,該事件并不完全發生在那個元素上。在冒泡階段,事件冒泡,或者事件發生在它的父代,祖父母,祖父母的父代,直到到達window為止。
假設有如下的 HTML 結構:
<p class="grandparent"> <p class="parent"> <p class="child">1</p> </p></p>
對應的JS代碼:
function addEvent(el, event, callback, isCapture = false) { if (!el || !event || !callback || typeof callback !== 'function') return; if (typeof el === 'string') { el = document.querySelector(el); }; el.addEventListener(event, callback, isCapture);}addEvent(document, 'DOMContentLoaded', () => { const child = document.querySelector('.child'); const parent = document.querySelector('.parent'); const grandparent = document.querySelector('.grandparent'); addEvent(child, 'click', function (e) { console.log('child'); }); addEvent(parent, 'click', function (e) { console.log('parent'); }); addEvent(grandparent, 'click', function (e) { console.log('grandparent'); }); addEvent(document, 'click', function (e) { console.log('document'); }); addEvent('html', 'click', function (e) { console.log('html'); }) addEvent(window, 'click', function (e) { console.log('window'); })});
addEventListener
方法具有第三個可選參數useCapture
,其默認值為false
,事件將在冒泡階段中發生,如果為true,則事件將在捕獲階段中發生。如果單擊child
元素,它將分別在控制臺上打印child
,parent
,grandparent
,html
,document
和window
,這就是事件冒泡。
以上是“JavaScript中事件冒泡的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。