事件冒泡

什么是事件冒泡

在一個(gè)對(duì)象上觸發(fā)某類(lèi)事件(比如單擊onclick事件),如果此對(duì)象定義了此事件的處理程序,那么此事件就會(huì)調(diào)用這個(gè)處理程序,如果沒(méi)有定義此事件處理程序或者事件返回true,那么這個(gè)事件會(huì)向這個(gè)對(duì)象的父級(jí)對(duì)象傳播,從里到外,直至它被處理(父級(jí)對(duì)象所有同類(lèi)事件都將被激活),或者它到達(dá)了對(duì)象層次的最頂層,即document對(duì)象(有些瀏覽器是window)。

事件冒泡的作用

事件冒泡允許多個(gè)操作被集中處理(把事件處理器添加到一個(gè)父級(jí)元素上,避免把事件處理器添加到多個(gè)子級(jí)元素上),它還可以讓你在對(duì)象層的不同級(jí)別捕獲事件。

阻止事件冒泡

事件冒泡機(jī)制有時(shí)候是不需要的,需要阻止掉,通過(guò) event.stopPropagation() 來(lái)阻止


$(function(){

? ? var $box1 = $('.father');

? ? var $box2 = $('.son');

? ? var $box3 = $('.grandson');

? ? $box1.click(function() {

? ? ? ? alert('father');

? ? });

? ? $box2.click(function() {

? ? ? ? alert('son');

? ? });

? ? $box3.click(function(event) {

? ? ? ? alert('grandson');

? ? ? ? event.stopPropagation();

? ? });

? ? $(document).click(function(event) {

? ? ? ? alert('grandfather');

? ? });

})

......

<div class="father">

? ? <div class="son">

? ? ? ? <div class="grandson"></div>

? ? </div>

</div>

```

阻止默認(rèn)行為

阻止右鍵菜單

```js

$(document).contextmenu(function(event) {

? ? event.preventDefault();

});

```

合并阻止操作

實(shí)際開(kāi)發(fā)中,一般把阻止冒泡和阻止默認(rèn)行為合并起來(lái)寫(xiě),合并寫(xiě)法可以用

```js

// event.stopPropagation();

// event.preventDefault();

// 合并寫(xiě)法:

return false;

```

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 事件冒泡: 什么是事件冒泡:在一個(gè)對(duì)象上觸發(fā)某類(lèi)事件(比如onclick事件),如果次對(duì)象定義了此事件的處理程序,...
    dream_seeker閱讀 454評(píng)論 0 0
  • Version:1.0StartHTML:000000201EndHTML:000033241StartFragm...
    Crld閱讀 336評(píng)論 0 0
  • 事件冒泡: 什么是事件冒泡:在一個(gè)對(duì)象上觸發(fā)某類(lèi)事件(比如onclick事件),如果次對(duì)象定義了此事件的處理程序,...
    眼前人_249d閱讀 227評(píng)論 0 0
  • 事件冒泡: 什么是事件冒泡:在一個(gè)對(duì)象上觸發(fā)某類(lèi)事件(比如onclick事件),如果次對(duì)象定義了此事件的處理程序,...
    末版車(chē)閱讀 656評(píng)論 0 0
  • 這個(gè)問(wèn)題也是老生常談了,寫(xiě)這篇文章的主要目的是進(jìn)行下梳理,了解自己知識(shí)點(diǎn)的掌握程度,也希望對(duì)大家有所幫助。 在說(shuō)如...
    一木_qintb閱讀 4,425評(píng)論 1 4

友情鏈接更多精彩內(nèi)容