js 事件流理解 && 阻止事件冒泡和默认行为

29 篇文章 0 订阅

 

 

第一:事件流:在页面接受事件的顺序。分两个阶段 1事件捕获阶段 2目标阶段 3事件冒泡阶段

    1事件捕获阶段:是从上而下查找如 document->html->body->div

    2目标阶段

    3事件冒泡阶段:是从下而上找(与上相反)

  addEventListenter有三个参数(事件,回调函数,boolean[false:冒泡--默认,true:捕获])

  <div class="parent">

    父元素

    <div class="child">

      子元素

    </div>

  </div>

  事件捕获情况:

  点击子元素div情况下:

  let child = document.querySelector('.child')

  child.addEventListener('click',function(){

    alert('我是子元素')

  },true)//true捕获 从上而下 事件先打印父元素在打印子元素。

  let parent = document.querySelector('.parent')

  parent.addEventListener('click',function(){

    alert('我是父元素')

  },true)

  事件冒泡情况

  点击子元素div情况下:

   let child = document.querySelector('.child')

  child.addEventListener('click',function(){

    alert('我是子元素')

  },false)//false捕获 从下而上 事件都先打印子元素在打印父元素。

  let parent = document.querySelector('.parent')

  parent.addEventListener('click',function(){

    alert('我是父元素')

  },false)

第二:阻止事件冒泡和默认行为

div class="parent">

    父元素

    <div class="child">

      子元素

    </div>

  </div>

  1 阻止默认行为如下:

  <a href="www.jd.com" > 阻止a标签跳转到www.jd.com </a>

  var aa = document.querySelector('a')

  aa.addEventListener('click',function(e){

    //1 种

    e.preventDefault();

    //2 种 兼容性问题 老版本ie

   // e.returnValue = false;

    //3 种

    //return false;

  })

  2 阻止事件冒泡

    let child = document.querySelector('.child')

    child.addEventListener('click',function(e){

      alert('我是子元素')

      e.stopPropagation() //主要这句话

      //e.cancelBubble = true //兼容性老版本ie 取消冒泡

    },false)//冒泡行为默认是false 可以不写 false

  let parent = document.querySelector('.parent')

  parent.addEventListener('click',function(){

    alert('我是父元素')

  },false)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值