JS冒泡事件的快速解決方法
何為冒泡事件
就是當設(shè)定了多個div的嵌套時;即建立了父子關(guān)系,當父div與子div共同加入了onclick事件時,當觸發(fā)了子div的onclick事件后,子div進行相應(yīng)的js操作。但是父div的onclick事件同樣會被觸發(fā)。這就造成了事件的多層并發(fā),導(dǎo)致了頁面混亂。這就是冒泡事件。
消除冒泡事件的方法
阻止JavaScript事件冒泡傳遞(cancelBubble 、stopPropagation)
下面的一段代碼即可以很好的解釋是么是冒泡效果,什么叫消除冒泡效果
<html>
<head>
<title> 阻止JavaScript事件冒泡傳遞(cancelBubble 、stopPropagation)</title>
<meta name="keywords" content="JavaScript,事件冒泡,cancelBubble,stopPropagation" />
<script type="text/javascript">
function doSomething (obj,evt) {
alert(obj.id);
var e=(evt)?evt:window.event; //判斷瀏覽器的類型,在基于ie內(nèi)核的瀏覽器中的使用cancelBubble
if (window.event) {
e.cancelBubble=true;
} else {
//e.preventDefault(); //在基于firefox內(nèi)核的瀏覽器中支持做法stopPropagation
e.stopPropagation();
}
}
</script>
</head>
<body>
<div id="parent1" onclick="alert(this.id)" style="width:250px;background-color:yellow">
<p>This is parent1 div.</p>
<div id="child1" onclick="alert(this.id)" style="width:200px;background-color:orange">
<p>This is child1.</p>
</div>
<p>This is parent1 div.</p>
</div>
<br />
<div id="parent2" onclick="alert(this.id)" style="width:250px;background-color:cyan;">
<p>This is parent2 div.</p>
<div id="child2" onclick="doSomething(this,event);" style="width:200px;background-color:lightblue;">
<p>This is child2. Will bubble.</p>
</div>
<p>This is parent2 div.</p>
</div>
</body>
</html>
把代碼直接復(fù)制后,打開當點擊child1時不僅會彈出 child1 對話框還會彈出 parent1
這就是冒泡事件
但是單擊chile2只會彈出child2卻不會彈出 parent2,這便是應(yīng)用了阻止冒泡事件的特效的效果.
- js之事件冒泡和事件捕獲詳細介紹
- js阻止默認事件與js阻止事件冒泡示例分享 js阻止冒泡事件
- javascript事件冒泡詳解和捕獲、阻止方法
- js冒泡、捕獲事件及阻止冒泡方法詳細總結(jié)
- js阻止冒泡及jquery阻止事件冒泡示例介紹
- zepto.js中tap事件阻止冒泡的實現(xiàn)方法
- js event事件的傳遞與冒泡處理
- JS阻止冒泡事件以及默認事件發(fā)生的簡單方法
- js如何取消事件冒泡
- js事件監(jiān)聽機制(事件捕獲)總結(jié)
- JavaScript 捕獲窗口關(guān)閉事件
- Javascript 事件捕獲的備忘(setCapture,captureEvents)
- JavaScript實現(xiàn)父子dom同時綁定兩個點擊事件,一個用捕獲,一個用冒泡時執(zhí)行順序的方法
相關(guān)文章
javascript下利用arguments實現(xiàn)string.format函數(shù)
sitepoint上看到Andrew Tetlaw在08年寫的文章arguments: A JavaScript Oddity,閱讀之后,除了對arguments溫故知新一遍以外,印象最深刻的還是Andrew的第一個函數(shù)實現(xiàn)的string.format功能。2010-08-08
基于JavaScript實現(xiàn)熔巖燈效果導(dǎo)航菜單
這篇文章主要介紹了基于JavaScript實現(xiàn)熔巖燈效果導(dǎo)航菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01
js和jquery中循環(huán)的退出和繼續(xù)下一個循環(huán)
退出循環(huán),使用break;退出當前循環(huán)繼續(xù)下一個循環(huán),使用continue,jquery中使用return false;continue,使用return true2014-09-09
使用webpack/gulp構(gòu)建TypeScript項目的方法示例
這篇文章主要介紹了使用webpack/gulp構(gòu)建TypeScript項目的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
讓JavaScript中setTimeout支持鏈式操作的方法
這篇文章主要介紹了讓JavaScript中setTimeout支持鏈式操作的方法,本文直接給出代碼實例,需要的朋友可以參考下2015-06-06

