javascript 事件冒泡和事件捕获

来源:互联网 发布:淘宝评论不见了 编辑:程序博客网 时间:2024/05/16 15:30

事件定义:javascript和html之间的交互是通过事件实现的,事件就是浏览器窗口和文档发生的一些特定的交互的瞬间

一 事件流

事件冒泡 : IE 的事件流。事件开始是由具体的元素接受,然后逐级向上传播

事件捕获:Netscape 提出的为事件捕获。事件开始由不太具体的节点接收,而最具体的节点应该最后接收到事件。用意在于事件到达预定目标之前捕获它


DOM事件流:包含三个阶段  事件捕获、处于目标阶段、事件冒泡。 注:目标对象事件会在冒泡阶段触发。但是 ie9,Safari,chrome 会在捕获阶段触发目标对象事件。所以他们       有两个机会在目标对象上面操作事件


如下面demo可以演示事件的执行原理

<!doctype html><html><head>    <meta charset="utf-8"/>    <style>        body{            height: 500px;            width: 500px;        }        #div1{            height: 200px;            width: 300px;            background-color: red;        }        #div2{            background-color: #008000;            height: 50px;            width: 50px;        }    </style></head><body>    <div id="div1">        click div1        <div id="div2">click div2</div>    </div><script>    var div1=document.getElementById("div1"),div2=document.getElementById("div2");    div1.addEventListener("click",some1,false);    div2.addEventListener("click",some2,false);    document.body.addEventListener("click",some,true);    function some1(){        alert("div1");    }    function some2(e){        alert("div2");        //e.stopPropagation();  //阻止冒泡    }    function some(e){        //return false;   //阻止捕获        alert("body");            }</script></body></html>

  1. addEventListener 最后一个参数为true时,表示事件触发在捕获阶段,如果为false目标事件触发在冒泡阶段
  2. 点击div2看到结果为 body->div2->div1。 这是目标元素在冒泡之前检查其父级元素是否有捕获触发事件,检查到body有捕获阶段的触发事件,就先执行body.然后冒泡执行目标元素和div1
  3. 打开some2中的注释,点击div2看到结果为 body->div2.  因为阻止了向上冒泡,所以div1的click事件未触发
  4. 打开some中注释,看到执行结果为 div2。阻止了目标元素的冒泡和其父级元素的捕获执行。
  5. 有兴趣的同学可以变换addEventListener最后一个参数,执行来看event的冒泡和捕获的执行原理



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩受凉打喷嚏流鼻涕怎么办 头疼打喷嚏流鼻涕鼻塞怎么办 头疼打喷嚏想吐怎么办 感冒鼻塞头疼打喷嚏怎么办 孕期打喷嚏漏尿怎么办 孕妇打喷嚏漏尿怎么办 打喷嚏停不下来怎么办 鼻炎不停的打喷嚏怎么办 感冒了鼻子痒怎么办 怀孕鼻炎严重了怎么办 鼻炎不停打喷嚏流鼻涕怎么办 鼻子里面干痒怎么办 有鼻炎老打喷嚏怎么办 鼻子喷嚏打不停怎么办 鼻子痒想打喷嚏怎么办 鼻痒打喷嚏流鼻涕怎么办 原配找到公司了怎么办 西北游不吃羊肉怎么办 水培植物冬天该怎么办 车里味道太大怎么办 同房后有异味怎么办 房间里有异味怎么办 身上有孤臭味怎么办 炉灶打不着火怎么办 檀香木香味小了怎么办 郁金香种球发霉怎么办 烧到小天真香该怎么办 qq留言删除频繁怎么办 压缩资源有密码怎么办 电表读不了卡怎么办 office安装了打不开怎么办 3d安装打不开怎么办 电脑变得很卡怎么办 小拉布拉多掉毛怎么办 小拉布拉多咬人怎么办 宝宝晚上吵夜怎么办 小孩晚上吵夜怎么办 孩子晚上吵夜怎么办 劲舞团没有按键怎么办 win7系统连不上网络怎么办 小米4屏幕闪烁怎么办