JS基础学习:事件冒泡/阻止事件冒泡/事件冒泡阶段

事件冒泡

多个元素嵌套,这些元素都注册了相同的事件,如果里面的元素的事件触发了,外面的元素的该事件也自动触发了。

<div id="dv1">1
            <div id="dv2">2
                <div id="dv3">3</div>
            </div>
        </div>
        <script src="js/common.js"></script>
        <script type="text/javascript">
            my$('dv1').onclick=function(){
                console.log("点击dv1");
            };
            my$('dv2').onclick=function(){
                console.log("点击dv2");
            };
            my$('dv3').onclick=function(){
                console.log("点击dv3");
            };
        </script>

阻止事件冒泡

如何阻止事件冒泡:

  • window.event.cancelBubble=true;
    IE特有的,火狐不支持,谷歌支持
  • e.stopProgation();
    谷歌和火狐都支持,IE不支持

事件阶段

事件冒泡是从里岛外,事件有三个阶段:
1.事件捕获阶段:从外向内
2.事件目标阶段:最开始选择的
3.事件冒泡阶段:从里向外

addEventListener("没有on的事件类型",事件处理函数,控制事件阶段的)
事件触发的过程中,可能会出现事件冒泡的效果,为了阻止事件冒泡:

  • window.event.cancelBubble=true;谷歌,IE8都支持,火狐不支持
    window.event就是一个对象,是IE中的标准
  • e.stopProgation();阻止事件冒泡

window.evente都是事件参数对象,一个是IE的标准,一个是火狐的标准,事件参数e在IE8的浏览器中不存在,此时用window.event来代替。

addEventListener()第三个参数是控制事件阶段的

事件阶段有三个:
通过e.eventPhase这个属性可以知道当前的事件是什么阶段
1--->捕获阶段
2--->目标阶段
3--->冒泡阶段

一般默认都是冒泡阶段,很少用捕获阶段
冒泡阶段:从里到外
捕获阶段:从外向内

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,538评论 1 11
  • js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...
    道无虚阅读 2,404评论 0 2
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,736评论 1 45
  • 事件流 JavaScript与HTML之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互...
    DHFE阅读 847评论 0 3
  • 以下文章为转载,对理解JavaScript中的事件处理机制很有帮助,浅显易懂,特分享于此。 什么是事件? 事件(E...
    jxyjxy阅读 3,073评论 1 10