为了账号安全,请及时绑定邮箱和手机立即绑定

JS如何阻止事件冒泡

JS如何阻止事件冒泡

www说 2019-03-04 04:04:26
<body><a onclick="aaa(this)" href="#">123123</a><ul id="ul" style="display:none;"><li><a href = "#">Home</a></li><li><a href = "#">PC</a></li><li><a href = "#">music</a></li><li><a href = "#">I like</a></li></ul></div> <script language = "javascript">var ul=document.getElementById('ul')function aaa(){if(ul.style.display=='none'){ul.style.display='block'} else{ul.style.display=='none'cancelBubble = true;}}</script></body>我想做的效果就是,当点击A链接的时候,ul显示,当点击body的时候ul隐藏,我是初学者,我知道这里面有一个事件冒泡的问题,请教各位高手,补充一下我的代码,如果可以的话,帮我注释一下我该怎么做。就可以阻止事件冒泡,
查看完整描述

4 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

 如果<p>是在<div>里面,那么呢,<P>有一个onclick事件,<div>也有onclick事件,为了触发<P>的点击事件时,不触发父元素的点击事件,那么就需要调用如下函数:
  
  代码如下:
  function stopBubble(e){
  if(e&&e.stopPropagation){//非IE
  e.stopPropagation();
  }
  else{//IE
  window.event.cancelBubble=true;
  }
  }
  
  
  <a onclick=''>如果要阻止默认事件的触发,即默认的href事件,那么就需要调用如下函数:
  
  代码如下:
  function stopDefault( e ) {
  //阻止默认浏览器动作(W3C)
  if ( e && e.preventDefault )
  e.preventDefault();
  //IE中阻止函数器默认动作的方式
  else
  window.event.returnValue = false;
  return false;
  }


 


查看完整回答
反对 回复 2019-03-17
?
RISEBY

TA贡献1856条经验 获得超5个赞


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

window.onload = function  () {

  

document.body.onclick = function(e) {

    e = e||window.event;

    alert("body");

}

  

document.getElementsByTagName("div")[0].onclick = function(e) {

    e = e||window.event;

    alert("div0");

    if (!!e.cancelBubble) {

        e.cancelBubble = true;

    } else if (!!e.stopPropagation) {

        e.stopPropagation();

    }

}

  

}

 


查看完整回答
反对 回复 2019-03-17
  • 4 回答
  • 0 关注
  • 681 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号