javascript事件的传播基础实例讲解(35)

本文实例为大家分享了js事件的传播,供大家参考,具体内容如下

<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事件的传播基础实例讲解(35) 的全部内容, 来源链接: utcz.com/z/319946.html

回到顶部