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

