js事件冒泡及阻止

2022-07-27 09:54:08 字數 2581 閱讀 3912

當乙個元素接收到事件的時候,會把他接收到的事件傳給自己的父級,一直到window,當然其傳播的是事件,繫結的執行函式並不會傳播,如果父級沒有繫結事件函式,就算傳遞了事件,也不會有什麼表現,但事件確實傳遞了。

事件冒泡的原因是事件源本身可能沒有處理事件的能力,即處理事件的函式並未繫結在該事件源上。它本身並不能處理事件,所以需要將事件傳播出去,從而能達到處理該事件的執行函式。

當點選idi3時,瀏覽器會依次彈出3 2 1,這就是事件冒泡,此正方形處於葉節點上,對其操作的事件會向上進行冒泡,直到根節點。

"i1

" style="

height: 150px;width: 150px;background: red;

">

"i2" style="

height: 100px;width: 100px;background: green;

">

"i3" style="

height: 50px;width: 50px;background: blue;

">

例如我們有10標籤,每個標籤有乙個uid作為判斷使用者點選的區別,使用冒泡就不需要為每個繫結點選事件,可以稱為事件委託

阻止冒泡

有時候我們並不希望事件冒泡而去執行上級節點繫結的事件,這時候就需要阻止事件的冒泡,w3c的方法是e.stoppropagation()ie則是使用window.event.cancelbubble = true;

class="

box">

class="

txt">

點選

效果圖

點選外層div出現43行列印結果

點選span出現阻止冒泡

點選button會出現43行列印結果才是50行的列印

可以看出點選哪一行它都會有乙個先後順序的出現

阻止事件預設

跳轉當乙個元素接收到事件的時候,會把他接收到的事件傳給自己的父級,一直到window,當然其傳播的是事件,繫結的執行函式並不會傳播,如果父級沒有繫結事件函式,就算傳遞了事件,也不會有什麼表現,但事件確實傳遞了。

事件冒泡的原因是事件源本身可能沒有處理事件的能力,即處理事件的函式並未繫結在該事件源上。它本身並不能處理事件,所以需要將事件傳播出去,從而能達到處理該事件的執行函式。

當點選idi3時,瀏覽器會依次彈出3 2 1,這就是事件冒泡,此正方形處於葉節點上,對其操作的事件會向上進行冒泡,直到根節點。

"i1

" style="

height: 150px;width: 150px;background: red;

">

"i2" style="

height: 100px;width: 100px;background: green;

">

"i3" style="

height: 50px;width: 50px;background: blue;

">

例如我們有10標籤,每個標籤有乙個uid作為判斷使用者點選的區別,使用冒泡就不需要為每個繫結點選事件,可以稱為事件委託

阻止冒泡

有時候我們並不希望事件冒泡而去執行上級節點繫結的事件,這時候就需要阻止事件的冒泡,w3c的方法是e.stoppropagation()ie則是使用window.event.cancelbubble = true;

class="

box">

class="

txt">

點選

效果圖

點選外層div出現43行列印結果

點選span出現阻止冒泡

點選button會出現43行列印結果才是50行的列印

可以看出點選哪一行它都會有乙個先後順序的出現

阻止事件預設

跳轉

js阻止事件冒泡

今天遇到乙個小問題 li div div本身有click事件 然後li也有click事件 當觸發li標籤的click事件時,div的click事件也會觸發 因此加了e.stoppropagation 來阻止事件冒泡 但是firefox對e不相容,於是加了e e window.event e e wi...

js阻止事件冒泡

比如上面這個頁面,分為三層 divone是第外層,divtwo中間層,hr three是最裡層 他們都有各自的click事件,最裡層a標籤還有href屬性。執行頁面,點選 點選我 會依次彈出 我是最裡層 我是中間層 我是最外層 這就是事件冒泡,本來我只點選id為hr three的標籤,但是確執行了三...

JS阻止事件冒泡,阻止預設事件

1 event.stoppropagation 阻止冒泡事件,不讓事件向documen上蔓延,但是預設事件任然會執行,當你掉用這個方法的時候,如果點選乙個鏈結,這個鏈結仍然會被開啟 2 event.preventdefault 阻止預設事件,呼叫此方法是,鏈結不會被開啟,但是會發生冒泡,冒泡會傳遞到...