欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 冒泡順序

洪振霞1年前6瀏覽0評論

JavaScript冒泡順序是指,當一個事件被觸發后,該事件會從觸發它的元素開始,逐級向上冒泡直到document對象(頁面)被觸發。在這個過程中,如果任何一個元素捕獲到這個事件,那么事件便不會繼續向上冒泡。

舉個例子,如果有這樣一個HTML結構:

<div id="outer">
<div id="middle">
<div id="inner">
</div>
</div>
</div>

并且給這三個div分別綁定了一個點擊事件:

• var outer = document.querySelector('#outer');
outer.addEventListener('click',function(){
console.log('outer');
});
• var middle = document.querySelector('#middle');
middle.addEventListener('click',function(){
console.log('middle');
});
• var inner = document.querySelector('#inner');
middle.addEventListener('click',function(){
console.log('inner');
});

當我們點擊最里層的inner元素時,按照冒泡順序,依次輸出的結果應該是:"inner" ->"middle" ->"outer"。

需要注意的是,由于JavaScript冒泡順序是從子元素開始冒泡到父元素,如果在子元素上綁定了一個事件,同時父元素上也綁定了同一個事件,那么在父元素冒泡到該事件時,該事件依然會被觸發。

例如:

• var outer = document.querySelector('#outer');
outer.addEventListener('click',function(){
console.log('outer');
});
• var middle = document.querySelector('#middle');
middle.addEventListener('click',function(){
console.log('middle');
});
• var inner = document.querySelector('#inner');
middle.addEventListener('click',function(){
console.log('inner');
});
• inner.addEventListener('click',function(){
console.log('inner clicked again');
});

當我們再次點擊最里層的inner元素時,輸出的結果將是:"inner" ->"inner clicked again" ->"middle" ->"outer"。

總結一下,JavaScript冒泡順序是從子元素開始向父級元素逐層冒泡的。如果一個元素上綁定了同一個事件的多個回調函數,那么它們的執行順序是按照它們被綁定的順序執行的。如果一個元素上的事件被捕獲,那么它就不會接著向上冒泡了。