美文网首页
Javascript中的事件委托与事件模拟

Javascript中的事件委托与事件模拟

作者: JJesson | 来源:发表于2021-02-24 22:57 被阅读0次

内存和性能

事件类型是在太多了,直接跳到事件内存和型能这里

  • 事件委托

    由于事件冒泡的原理,可以只盯一个事件处理程序,用来管理一个类型的所有事件,比如click事件会一直冒泡到document层次,也就是说如果可以的话,整个页面指定一个onclick事件,而不必给所有元素分别添加事件处理程序

    利用事件委托,再上级或者尽量高的DOM层次中添加一个事件处理程序,用来管理下级DOM的所有事件

  • 移除事件处理程序

    由于在销毁DOM元素的时候并不会移除事件监听程序的,所以会造成不一样的内存冗余

    养成良好的习惯,在移除DOM元素之前,先移除元素的监听事件

    还有就是页面有一个onunload事件,在页面被卸载前执行,但是需要考虑一些变量已经被释放的问题,还有就是如果有缓存页面,可能设计了这种方式就不会走缓存

  • 模拟事件

    • DOM中的模拟事件
      • 主要方法document.createEvent
      • 过程
        • 使用document.createEvent创建时间,传入事件类型,返回一个包含初始化事件方法的对象
        • 使用事件相关信息进行事件初始化event.initMouseEvent(info),这里需要对应事件类型的初始化方法
        • 使用el.dispatchEvent(event)在对应元素触发事件
      • 注意:在该元素触发事件,如果没有特殊处理,也会按照正常的事件冒泡进入事件流网上传递
    • 模拟自定义DOM事件
      • 方法跟上面类似,但是初始化事件的时候使用initCustomEvent进行初始化
      • 初始化结束之后仍然需要dispatch到对应元素进行派发
      • initCustomEvent有四个参数
        • 事件类型
        • 是否冒泡
        • 是否可取消
        • detail
    • IE中的事件模拟
      • 逻辑跟DOM中的事件模拟差不多,只是方法名有一些不一样
      • 创建事件document.createEvent
      • 初始化事件这里返回的对象就不包括初始化方法,直接往事件对象上添加属性event.returnValue= false
      • 在目标元素上调用触发事件函数el.fireEvent(event)

Javascript 事件这一块就算告一段落,每天一小步,加油!

相关文章

  • Javascript中的事件委托与事件模拟

    内存和性能 事件类型是在太多了,直接跳到事件内存和型能这里 事件委托由于事件冒泡的原理,可以只盯一个事件处理程序,...

  • JQuery事件委托

    JavaScript(jQuery)中的事件委托 一:什么是事件委托? 事件委托是利用事件冒泡,只指定一个事件...

  • JavaScript的事件机制

    在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定、事件监听、事件委托(...

  • js事件深入学习

    JavaScript的事件机制包含,事件绑定、事件监听、事件委托(事件代理)等 js中的事件流 ① .冒泡:当下级...

  • JavaScript的事件代理和事件委托

    JavaScript中的事件委托是很重要的一个东西,事件委托依靠的就是事件冒泡和捕获的机制。 事件冒泡怎么实现,先...

  • 概念

    事件委托,事件代理 事件代理又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。顾名思义,“事件代理...

  • JavaScript事件委托与事件冒泡

    事件委托: 原理:事件委托是最好理解的那个,我们要给每一个按钮绑定一个事件,但是这样遍历,太消耗性能了,于是我们直...

  • 使用原生 JS 实现事件委托

    JavaScript与HTML之间的交互是通过事件实现的。在学习事件委托之前,我们需要先了解事件含义、事件绑定、事...

  • 使用原生 JS 实现事件委托

    JavaScript与HTML之间的交互是通过事件实现的。在学习事件委托之前,我们需要先了解事件绑定、事件监听、事...

  • 前端知识填坑记(二):call和apply,bind ,new

    前端知识填坑记(一):浏览器内核,事件委托 call和apply,bind 的模拟实现 JavaScript 之 ...

网友评论

      本文标题:Javascript中的事件委托与事件模拟

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