javascript事件的傳播基礎(chǔ)實(shí)例講解(35)
本文實(shí)例為大家分享了js事件的傳播,供大家參考,具體內(nèi)容如下
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#box1{
width: 300px;
height: 300px;
background-color: deepskyblue;
}
#box2{
width: 200px;
height: 200px;
background-color: cadetblue;
}
#box3{
width: 100px;
height: 100px;
background-color: chocolate;
}
</style>
<script type="text/javascript">
function bind(obj , eventStr , callback){
if(obj.addEventListener){
//如果是正常瀏覽器
obj.addEventListener(eventStr , callback , false);
}else{
//IE8
obj.attachEvent("on"+eventStr , function(){
callback.call(obj);
});
}
}
window.onload = function(){
/*
* 事件的傳播
* - 關(guān)于事件的傳播微軟和網(wǎng)景公司有著不同的理解
* - 微軟公司,認(rèn)為事件應(yīng)該是從后代元素向祖先元素傳播,即從里向外傳播,也就是我們所謂事件的冒泡
* - 網(wǎng)景公司,認(rèn)為事件應(yīng)該是從祖先元素向后代元素傳播,即從外向里傳播,這一階段我們稱為事件的捕獲
* - W3C綜合了兩個(gè)公司的方案,將事件的傳播分成了三個(gè)階段
* 1.捕獲階段
* - 事件從最外層的元素(document),向目標(biāo)元素進(jìn)行事件的捕獲
* - 此階段默認(rèn)不會(huì)觸發(fā)事件
* 2.目標(biāo)階段
* - 目標(biāo)指的是觸發(fā)事件的元素,捕獲到目標(biāo)元素則捕獲階段停止
* 3.冒泡階段
* - 事件從目標(biāo)元素向祖先元素中冒泡,此時(shí)開始觸發(fā)事件
* - 默認(rèn)事件都是在冒泡階段執(zhí)行的
*
* - 事件都是默認(rèn)在冒泡階段執(zhí)行的,一般不需要在捕獲階段觸發(fā)事件,
* 如果希望在捕獲階段執(zhí)行事件,則需要將addEventListener()的第三個(gè)參數(shù)修改為true
*
* - IE8及以下的瀏覽器沒有捕獲階段,也不能設(shè)置在捕獲階段觸發(fā)事件
*/
//分別為三個(gè)div綁定單擊響應(yīng)函數(shù)
var box1 = document.getElementById("box1");
var box2 = document.getElementById("box2");
var box3 = document.getElementById("box3");
bind(box1,"click",function(){
alert(1);
})
bind(box2,"click",function(){
alert(2);
})
bind(box3,"click",function(){
alert(3);
})
};
</script>
</head>
<body>
<div id="box1">
<div id="box2">
<div id="box3"></div>
</div>
</div>
</body>
</html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
RGB顏色值轉(zhuǎn)HTML十六進(jìn)制(HEX)代碼的JS函數(shù)
轉(zhuǎn)到固定長度的十六進(jìn)制字符串,不夠則補(bǔ)0 javascript找出一個(gè)背景色的數(shù)值,只好自己解析2009-04-04
Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼
這篇文章主要介紹了Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼,代碼簡單易懂非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
javascript之DIV拖動(dòng)類 支持在FF下拖動(dòng),調(diào)用簡單
javascript之DIV拖動(dòng)類 支持在FF下拖動(dòng),調(diào)用簡單...2007-08-08
ES6中的rest參數(shù)與擴(kuò)展運(yùn)算符詳解
rest參數(shù)和擴(kuò)展運(yùn)算符都是ES6新增的特性。下面這篇文章主要給大家介紹了關(guān)于ES6中rest參數(shù)與擴(kuò)展運(yùn)算符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-07-07
微信小程序bindtap與catchtap的區(qū)別詳解
本文主要介紹了微信小程序bindtap與catchtap的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
js實(shí)現(xiàn)時(shí)鐘定時(shí)器
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)時(shí)鐘定時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
Canvas 制作動(dòng)態(tài)進(jìn)度加載水球詳解及實(shí)例代碼
這篇文章主要介紹了Canvas 制作動(dòng)態(tài)進(jìn)度加載水球詳解及實(shí)例代碼的相關(guān)資料,這里附有實(shí)例代碼及實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-12-12
js解決event.keyCode在Firefox中失效的問題
這篇文章主要介紹了js解決event.keyCode在Firefox中失效的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
javascript另類方法實(shí)現(xiàn)htmlencode()與htmldecode()函數(shù)實(shí)例分析
這篇文章主要介紹了javascript另類方法實(shí)現(xiàn)htmlencode()與htmldecode()函數(shù),結(jié)合實(shí)例形式分析了javascript字符編碼與解碼操作的相關(guān)技巧,需要的朋友可以參考下2016-11-11

