javascript基礎(事件的傳播)(三十五)
1.事件的傳播:
<!DOCTYPE html>
<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(){
/*
* 事件的傳播
* - 關於事件的傳播微軟和網景公司有著不同的理解
* - 微軟公司,認為事件應該是從後代元素向祖先元素傳播,即從裡向外傳播,也就是我們所謂事件的冒泡
* - 網景公司,認為事件應該是從祖先元素向後代元素傳播,即從外向裡傳播,這一階段我們稱為事件的捕獲
* - W3C綜合了兩個公司的方案,將事件的傳播分成了三個階段
* 1.捕獲階段
* - 事件從最外層的元素(document),向目標元素進行事件的捕獲
* - 此階段預設不會觸發事件
* 2.目標階段
* - 目標指的是觸發事件的元素,捕獲到目標元素則捕獲階段停止
* 3.冒泡階段
* - 事件從目標元素向祖先元素中冒泡,此時開始觸發事件
* - 預設事件都是在冒泡階段執行的
*
* - 事件都是預設在冒泡階段執行的,一般不需要在捕獲階段觸發事件,
* 如果希望在捕獲階段執行事件,則需要將addEventListener()的第三個引數修改為true
*
* - IE8及以下的瀏覽器沒有捕獲階段,也不能設定在捕獲階段觸發事件
*/
//分別為三個div繫結單擊響應函式
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>
相關文章
- javascript事件基礎知識JavaScript事件
- JavaScript基礎之事件eventJavaScript事件
- javascript基礎(事件的委派)(三十三)JavaScript事件
- javascript基礎(事件的冒泡)(三十二)JavaScript事件
- javascript基礎(事件物件)(三十一)JavaScript事件物件
- javascript基礎(滾輪的事件)(三十七)JavaScript事件
- javascript基礎(事件的繫結)(三十四)JavaScript事件
- javascript基礎(鍵盤事件)(三十八)JavaScript事件
- JavaScript的基礎語法及DOM元素和事件JavaScript事件
- javascript基礎(html5輪播圖)(四十四)JavaScriptHTML
- 廣播基礎使用
- javascript基礎(滑鼠事件拖拽,setCapture()方法)(三十六)JavaScript事件APT
- 基於 Redis驅動的 Laravel 事件廣播RedisLaravel事件
- 傳智播客 java基礎 相關資料 Day1Java
- jQ基礎篇–$(document).ready()和JavaScript onload事件JavaScript事件
- JS基礎 ---事件JS事件
- javascript基礎JavaScript
- 《HTML5+JavaScript動畫基礎》——第2章 動畫的JavaScript基礎2.1動畫基礎HTMLJavaScript動畫
- JS基礎_滾輪的事件JS事件
- javascript基礎(DOM物件概述,事件,文件載入)(二十五)JavaScript物件事件
- stopPropagation()停止事件向上傳播程式碼例項事件
- 正向傳播和反向傳播反向傳播
- Javascript基礎之-thisJavaScript
- JavaScript基礎原理JavaScript
- JavaScript基礎10JavaScript
- JavaScript基礎8JavaScript
- JavaScript Promise(基礎)JavaScriptPromise
- JavaScript基礎(一)JavaScript
- JavaScript基礎(二)JavaScript
- JavaScript基礎1JavaScript
- JavaScript基礎2JavaScript
- 使用IPostBackEventHandler讓JavaScript“呼叫”回傳事件JavaScript事件
- [譯]基礎中的基礎,JavaScript中的值和引用JavaScript
- [原始碼解析]PyTorch如何實現前向傳播(1) --- 基礎類(上)原始碼PyTorch
- [原始碼解析]PyTorch如何實現前向傳播(2) --- 基礎類(下)原始碼PyTorch
- JavaScript 基礎卷(一):基礎語法JavaScript
- 前端基礎入門四(JavaScript基礎)前端JavaScript
- C#基礎教程:事件C#事件