美文网首页
2020-11-24

2020-11-24

作者: 二荣xxx | 来源:发表于2020-11-24 19:50 被阅读0次

DOM事件模型

一、DOM事件流分为三个阶段

拿下面代码为例子

<div class= "xxx">
      <div class= "yyy">
              <div class="zzz" >
              </div>
      </div>
</div>

  • 事件捕获:由外(xxx)向内(zzz)找监听函数
  • 目标阶段:指事件响应到触发事件的最底层元素上
  • 事件冒泡:由内(zzz)向外(xxx)找监听函数

W3C 事件模型/事件机制:对每个事件先捕获再冒泡

先捕获再冒泡,两个阶段都要走一遍(人为取消冒泡除外,捕获不可以取消),事件绑定API只是写明函数调用的阶段

image.png

特例:当只有一个div被监听(不考虑父子级同时监听),函数fn分别在捕获阶段和冒泡阶段监听click事件,执行顺序是先监听的先执行

二、事件绑定API
IE5*:div.attachEvent('onclick',fn)
网景:div.addEventListener('click',fn)
W3C:div.addEventListener('click',fn,bool) //bool可不写,默认为false冒泡
三、target和currentTarget区别
x.target //用户操作的元素
x.currentTarget //程序员监听的元素(this)
例:
div>span(文字),用户点击文字
x.target  //span
x.currentTarget  //div
四、取消冒泡API
x.stopPropagation() 
一般用于封装独立属性
五、自定义事件
button1.addEventListener('click',()=>{
     const event = new CustomEvent('frank',{ //自定义事件frank
      detail:{name:'frank',age:'18'}
    })
    button1.dispatchEvent(event)  //触发事件
})
//监听frank事件
button1.addEventListener('frank',(e)=>{
    console.log(e.detail)
})

相关文章

  • 周二 2020-11-24 23:20 - 06:37 雨 09

    2020-11-24 上午超纲完成任务,然后下午直接爆炸崩了个惨周二 2020-11-24 23:20 - 06:...

  • 30个主题(结2020-11-24

    有话(结2020-11-24[https://www.jianshu.com/p/ffa64350e89d] 生活...

  • 更新日记

    2020-11-24 新增收支明细 2020-10-22 新增销售订单的订单编号 新增采购订单的订单编号 新增交易...

  • 2020-11-24自我观察记录

    【2020-11-24日精进 第189天/1825】表现:8分 体验: 1.昨天感觉在混沌中,无获得感,也分不清...

  • 2020-11-24

    中原焦点团队祝澜 1063天 2020-11-24 今天早上,穿上了羽绒服,敏感的鼻炎稍微好了一些。 中午,学...

  • 致人类书:(44)慈悲心会将人类团结在一起

    鸢尾天空2020-11-24 16:32:06 日安,我们是阿柯图-瑞恩! 我们正在倾听人类心灵的声音。我们对于那...

  • 如何培养孩子的自我价值感

    中原焦点团队 成长分享869天 2020-11-24 生活中,一些孩子本来自身条件很好,但是却很自卑、不自信,没有...

  • 上班日记 Day87

    2020-11-24 实地调研发现场景已不如想象了,应如何对产品改造? 暂时没想法,留个坑 提示语怎么写合适 新人...

  • 践行五个一•打卡41天

    2020-11-24 【周岳五个一】#百日践行100/41天 【健身之志】 今日早起打卡第41天 送娃上学,陪娃...

  • 2020-11-24

    2020-11-24 姓名 :曹静杰 企业名称 : 辽宁辽阳丛迪服装有限公司 组别 388期 反省1组 志工529...

网友评论

      本文标题:2020-11-24

      本文链接:https://www.haomeiwen.com/subject/vaqwiktx.html