lang
="en"
>
>
charset
="utf-8"
/>
name
="viewport"
content
="width=device-width, initial-scale=1.0"
/>
>
documenttitle
>
head
>
>
"demo"
style
="width
: 300px;
height
: 300px;
background
: blue;
">
"demo1"
style
="width
: 200px;
height
: 200px;
background
: red;
">
333
div>
222div
>
111div
>
>
let demo = document.
queryselector
("#demo");
let demo1 = document.
queryselector
("#demo1");
let demo2 = document.
queryselector
("#demo2");
demo.
addeventlistener
('click'
,function()
,true
) demo1.
addeventlistener
('click'
,function()
,true
) demo2.
addeventlistener
('click'
,function()
,true
)script
>
body
>
html
>
正常這種情況下你要是不阻止事件冒泡它的列印結果應該是333 222 111從裡往外依次觸發,但是這裡我們用了addeventlistener它一共有三個引數其實,上次只寫了常用的前兩個,他還有第三個引數是布林值,當第三個引數為true時就會觸發其自帶的事件捕獲效果,改變執行的順序,從外往裡執行捕獲。現在他的列印結果應該是111 222 333,而且你也可以使用 e.stoppropagation();阻止事件捕獲的進行。 js中的事件捕獲和事件捕獲
事件流的三個階段 事件捕獲階段 目標階段 事件冒泡事件 關於這三個階段的介紹網上已經有很多介紹了,在這裡不做介紹。本文主要說下需要注意的一點 當在事發元素上即繫結了捕獲事件又繫結了冒泡事件時,事發元素上的執行順序由事件註冊順序決定。如 var p document.getelementbyid pa...
事件冒泡,事件捕獲
js事件流中有一種事件被稱為 冒泡事件 當乙個元素被觸發乙個事件時,該目標元素上的事件會優先被執行,然後向外傳播到每個祖先元素,恰如水裡的乙個泡泡似的,從產生就一直往上冒,到達水平面時,它才消失。在這個過程中,如果你只希望觸發目標元素上的事件,而不想它傳播到祖先元素上去,那麼你需要在 泡泡 離開物件...
事件捕獲 事件冒泡
body div id div1 div id div2 div id div3 div div div body script window.onload function odiv1.onclick fn1 odiv2.onclick fn1 odiv3.onclick fn1 false 冒泡...