js阻止默認(rèn)事件與js阻止事件冒泡示例分享 js阻止冒泡事件
1. event.preventDefault(); -- 阻止元素的默認(rèn)事件。
注:a元素的點(diǎn)擊跳轉(zhuǎn)的默認(rèn)事件 ,
button,radio等表單元素的默認(rèn)事件 ,
div 元素沒有默認(rèn)事件
例:
<a target="_black">百度</a>
var samp = document.getElementByTagName("a");
samp.addEventListener("click",function(e){e.preventDefault()},false);
解釋:點(diǎn)擊鏈接的時(shí)候正常情況下會(huì)發(fā)生跳轉(zhuǎn),但是現(xiàn)在我們阻止了它的默認(rèn)事件,即跳轉(zhuǎn)事件,這時(shí)就不會(huì)跳轉(zhuǎn)到百度了。
2. event.stopPropagation(); -- 阻止元素冒泡事件
注:嵌套元素一般都存在冒泡事件,會(huì)帶來(lái)某些影響
例:
<div id="c1" onclick="alert(1)">
<div id="c2" onlick="alert(2)">
<input type="button" id="c3" value="點(diǎn)擊" onclick="alert(3)">
</div>
</div>
這里點(diǎn)擊button的時(shí)候,瀏覽器會(huì)先后彈出3,2,1,本來(lái)只想讓綁定在button上的事件發(fā)生,卻無(wú)意中觸發(fā)了它的兩個(gè)父級(jí)上的事件,這里我們只是做了一個(gè)簡(jiǎn)單測(cè)試,試想如果在項(xiàng)目開發(fā)中,某個(gè)按鈕和他的父級(jí)同時(shí)綁定了很重要的事件,那么結(jié)果會(huì)慘不忍睹。這時(shí)的處理方法就是阻止冒泡事件。
給input注冊(cè)click事件,同時(shí)阻止它的冒泡事件
document.getElementById('c3').addEventListener('click',function(e){e.stopPropagation()},false);
OK!??!了
PS:這里再為大家推薦一款關(guān)于JS事件的在線查詢工具,歸納總結(jié)了JS常用的事件類型與函數(shù)功能:
javascript事件與功能說(shuō)明大全:
相關(guān)文章
深入理解Javascript中的自執(zhí)行匿名函數(shù)
下面小編就為大家?guī)?lái)一篇深入理解Javascript中的自執(zhí)行匿名函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06淺談JavaScript中setInterval和setTimeout的使用問題
這篇文章主要介紹了淺談JavaScript中setInterval和setTimeout的使用問題,作者建議在任務(wù)龐大時(shí)盡量避免使用setInterval,需要的朋友可以參考下2015-08-08js對(duì)象內(nèi)部訪問this修飾的成員函數(shù)示例
這篇文章主要介紹了js對(duì)象內(nèi)部訪問this修飾的成員函數(shù)示例,需要的朋友可以參考下2014-04-04