iframe里面事件会冒泡么_js 冒泡事件与解决冒泡事件

事件冒泡是指事件从子元素开始,逐级向上层元素传递。在JavaScript中,IE浏览器使用window.event.cancelBubble=true来阻止事件冒泡,但这不是标准做法。为实现跨浏览器兼容,需要采取相应解决方案。
摘要由CSDN通过智能技术生成

abafea46a9c5d9805219a7c64a9ec800.png

事件冒泡 :当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window 。

代码:

<div id="div1">  <div id="div2">    <div id="div3">    div>  div>div><style>    #div1{      width: 300px;      height: 200px;      background-color: red;    }    #div2{      width: 250px;      height: 150px;      background-color: green;    }    #div3{      width: 200px;      height: 100px;      background-color: blue;    }style>my$("div1").onclick=function () {    console.log(this.id);  };//div3 div2 div1  my$("div2").onclick=function () {    console.log(this.id);  };//div2 div1  my$("div3").onclick=function () {    console.log(this.id);  };//div1
代码很简单,就是三个父子关系的div,然后分别加了点击事件,当我们在div3里面点击的时候,会发现弹出了一次3,接着又弹出了2,最后又弹出了1,这说明点击的时候,不仅div3的事件被触发了,它的父级div2 与div1的点击事件也触发了,这种现象就叫做冒泡。 取消事件冒泡有两种方式: 1、标准的W3C 方式:e.stopPropagation(); 这里的stopPropagation是标准的事件对象的一个方法,调用即可(谷歌和火狐支持,IE不支持)
my$("div3").onclick=function (e) {    console.log(this.id);    e.stopPropagation();  };

2、非标准的IE方式:window.event.cancelBubble=true; 这里的cancelBubble是 IE事件对象的属性,设为true就可以了(IE特有的,谷歌支持,火狐不支持)

my$("div2").onclick=function () {    console.log(this.id);    window.event.cancelBubble=true;};

为了兼容解决事件冒泡的方式:

function stopBubble(e) {      //如果提供了事件对象,则这是一个非IE浏览器      if (e && e.stopPropagation)        //因此它支持W3C的stopPropagation()方法        e.stopPropagation();      else        //否则,我们需要使用IE的方式来取消事件冒泡        window.event.cancelBubble = true;    }    my$("div2").onclick = function (e) {      console.log(this.id);      stopBubble(e)    };    my$("div3").onclick = function (e) {      console.log(this.id);      stopBubble(e)    };

本文完~

9d28418c59322e31488b82af33b863b3.png c8bfba7f7d8f8e1e1f9880dfbb2b6e0a.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值