事件模型

作者: 糕糕AA | 来源:发表于2019-07-02 20:03 被阅读0次
  • DOM事件三阶段:
  1. window 往事件触发处传播,遇到注册的捕获事件会触发
  2. 传播到事件触发处时触发注册的事件
  3. 从事件触发处往 window 传播,遇到注册的冒泡事件会触发
    例外:同时注册冒泡和捕获事件时,会按注册的顺序执行
  • 标准事件监听elem.addEventListener(type, handler, capture)/elem.removeEventListener(type, handler, capture)
    handler接收保存事件信息的event对象作为参数;
    event.target为触发事件的对象,handler调用上下文this为绑定监听器的对象
    event.preventDefault():取消事件默认行为
    event.stopPropagation():阻止事件冒泡/捕获事件,即阻止事件的传递
    event.stopImmediatePropagation():取消事件传递&阻止该注册目标再去注册别的事件

    第三个参数:可以是布尔值或者对象,布尔值:false-冒泡,true-捕获
    对象:capture,once(boolean):true-该事件回调调用一次,passive(Boolean):永远不会调用stopPropagation

  • 老版本IE事件监听elem.attachEvent('on'+type, handler)/elem.detachEvent('on'+type, handler):handler不接收event作为参数,事件信息保存在window.event中,触发事件的对象为event.srcElement,handler执行上下文this为window使用闭包中调用handler.call(elem, event)可模仿标准模型,然后返回闭包,保证了监听器的移除。event.returnValue为false时取消事件默认行为,event.cancleBubble为true时取消时间传播

  • 通常利用事件冒泡机制,事件委托处理程序提高程序性能。

事件委托
通俗地讲就是将事件绑定到元素的父元素上,通过event.target去获取目标。
比如一个列表元素,每一个li标签都会触发同一类事件,那么,通常的做法是在每一个li上都绑定一个触发事件,点到那个就完成对应的回调。然而这种做法很浪费内存。
vue中,可以利用冒泡的机制,在其父元素,也就是ul上绑定一个公共事件,传入一个 $event 参数。当点击某个li标签时,可以通过e.target获取目标。

  • 节省内存
  • 不需要给子节点注销事件

相关文章

  • 事件流的3个阶段:捕获、冒泡、目标

    事件模型:IE事件模型和DOM标准事件模型区别:IE事件模型没有捕获阶段,只有冒泡。 事件流的三个阶段:先捕获阶段...

  • js 事件

    事件模型 DOM0 :原始事件模型btn.onclick=function(){}这种类型的事件模型(btn.on...

  • jQuery--事件处理

    jQuery--事件处理 一、事件模型 1.浏览器事件模型①DOM0级事件模型:只支持一个DOM事件处理函数• ...

  • 前端:常见的事件兼容IE问题处理

    1.注册事件IE 事件模型使用 attachEvent() 方法注册事件DOM 事件模型使用 addEv...

  • Javascript 事件机制

    事件模型 DOM0级模型 在该模型中,事件不会传播,没有事件流的概念。这种模型兼容所有的浏览器。事件绑定监听函数有...

  • jQuery--事件处理

    一、事件模型 1.浏览器事件模型 ①DOM0级事件模型:只支持一个DOM事件处理函数• • input.onc...

  • JavaScript--模型、闭包、链

    (1)事件模型JavaScript中有两种时间模型:DOM0,DOM2 DOM0级事件模型是早期的事件模型,所有的...

  • laravel 模型事件监听

    所有支持的模型事件在 Eloquent 模型类上进行查询、插入、更新、删除操作时,会触发相应的模型事件(关于事件我...

  • DOM事件模型与事件委托

    1.DOM事件模型 DOM支持两种事件模型: 捕获型模型 冒泡型模型 先看下面的代码 给三个div分别添加事件监听...

  • JS事件模型

    IE事件模型 IE事件模型共有两个过程: 事件处理阶段(target phase)。事件到达目标元素, 触发目标元...

网友评论

    本文标题:事件模型

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