JavaScript實(shí)現(xiàn)事件的中斷傳播和行為阻止方法示例
事件傳播
MicroSoft的設(shè)計(jì)是當(dāng)事件在元素上觸發(fā)時(shí),該事件將接著在該節(jié)點(diǎn)的父節(jié)點(diǎn)觸發(fā),以此類推,事件一直沿著DOM樹向上傳播,直到到達(dá)頂層對(duì)象document元素。這種自底向上的事件傳播方式稱為“事件冒泡”,也就是事件傳播。
如何中斷事件的傳播?
stopPropagation()
w3c取消冒泡
cancleBubble = true
IE取消冒泡
取消事件默認(rèn)效果:
returnValue = false
IE 取消事件效果
defaultPrevent()
w3c取消事件效果
<div id='aa'> <div id='bb'> <div id ='cc'></div> </div> </div>
#aa{ width: 600px; height: 600px; background: gray; } #bb{ width: 400px; height: 400px; background: green; } #cc{ width: 200px; height: 200px; background: red; }
捕捉寫法停止傳播 從最頂層開始往下
document.getElementById('aa').addEventListener('click',function (ev){alert('aa');ev.stopPropagation();},true);// 結(jié)果捕捉到aa 加true 由冒泡變?yōu)椴蹲?從上到下 document.getElementById('bb').addEventListener('click',function (){alert('bb')},true); document.getElementById('cc').addEventListener('click',function (){alert('cc')},true);
冒泡寫法停止傳播 從下往上
document.getElementById('aa').addEventListener('click',function (){alert('aa');});//加true 由冒泡變?yōu)椴蹲?從上到下 document.getElementById('bb').addEventListener('click',function (){alert('bb')}); document.getElementById('cc').addEventListener('click', function (ev){ alert('cc'); ev.stopPropagation(); // ev.cancleBubble = true;//IE下 取消冒泡方法 }); //結(jié)果是冒出cc 停止傳播 }
取消事件效果
returnValue = false
//IE 取消事件效果
preventDefault()
//w3c取消事件效果
document.getElementsByTagName('a')[0].onclick = function (ev){ alert('點(diǎn)擊'); //達(dá)到事件結(jié)束的效果 但是函數(shù)還是往下運(yùn)行 // ev.preventDefault(); alert('已經(jīng)攔截'); }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
javascript browser瀏覽器類型以及版本判斷代碼
在團(tuán)隊(duì)js框架建設(shè)過程中寫的一段瀏覽器判斷代碼,喜歡的朋友可以參考下。2010-04-04webpack實(shí)現(xiàn)熱加載自動(dòng)刷新的方法
本文介紹了webpack實(shí)現(xiàn)熱加載自動(dòng)刷新的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07基于 Immutable.js 實(shí)現(xiàn)撤銷重做功能的實(shí)例代碼
這篇文章主要介紹了基于 Immutable.js 實(shí)現(xiàn)撤銷重做功能及一些需要注意的地方,需要的朋友可以參考下2018-03-03JavaScript動(dòng)態(tài)添加數(shù)據(jù)到表單并提交的幾種方式
這篇文章主要介紹了JavaScript動(dòng)態(tài)添加數(shù)據(jù)到表單并提交,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06解析如何利用iframe標(biāo)簽以及js制作時(shí)鐘
本文對(duì)如何利用iframe標(biāo)簽以及js制作時(shí)鐘進(jìn)行了全面解析,分步說明,條理清晰,感興趣的朋友可以看下2016-12-12經(jīng)常用的圖片在容器中的水平垂直居中實(shí)例
經(jīng)常用的圖片在容器中的水平垂直居中實(shí)例...2007-06-06JavaScript+canvas實(shí)現(xiàn)框內(nèi)跳動(dòng)小球
這篇文章主要為大家詳細(xì)介紹了JavaScript+canvas實(shí)現(xiàn)框內(nèi)跳動(dòng)小球,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04JS實(shí)現(xiàn)禁止鼠標(biāo)右鍵的功能
遇到網(wǎng)頁上有精美圖片或者精彩文字想保存時(shí),通常大家都是選中目標(biāo)后按鼠標(biāo)右鍵,在彈出菜單中選擇“圖片另存為”或“復(fù)制”來達(dá)到我們的目的。但是,目前有許多網(wǎng)頁都屏蔽了鼠標(biāo)右鍵,那么用js如何實(shí)現(xiàn)禁止鼠標(biāo)右鍵的功能呢?下面小編給大家介紹下2016-10-10