JavaScript--事件委托

什么是事件委托

  • 把目标元素的事件委托给父元素
  • 利用了事件冒泡的原理

事件委托有什么好处

  • 管理的函数变少了。不需要为每个元素都添加监听函数。对于同一个父节点下面类似的子元素,可以通过委托给父元素的监听函数来处理事件。
  • 可以方便地动态添加和修改元素,不需要因为元素的改动而修改事件绑定。(比如后来添加子元素依然拥有事件)
  • JavaScript和DOM节点之间的关联变少了,这样也就减少了因循环引用而带来的内存泄漏发生的概率。

事件委托的应用场景

  • 很多商品放在一个ul下面的li标签里面,点击添加或删除商品,就可以绑定商品的父元素ul标签,通过事件代理去找到要点击的商品,完成添加删除事件

为什么要使用事件委托

  • 绑定事件太多,浏览器占用内存变大,严重影响性能
  • Ajax出现,局部刷新盛行,每次加载完,都要重新绑定事件
  • 部分浏览器移除元素时,绑定的事件没有被及时移除,导致内存泄漏,严重影响性能
  • Ajax中重复绑定,导致代码耦合性过大,影响后期维护

事件委托的解决方案

      ul.onclick = function (e) {
            var e = e || event;
            var target = e.target || e.srcElement //目标对象的dom
            if (target.tagName == "LI") {
                console.log(target.innerHTML);
            }
       }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概念 事件委托,通俗来说就是将元素的事件委托给它的父级或者更外级元素处理。 事件流 事件流描述的是从页面中接收事件...
    __MYSTERY阅读 1,582评论 0 1
  • 元旦过后,新年第一篇。初衷:很多的面试都会涉及到事件委托,前前后后也看过好多博文,写的都很不错,写的各有千秋,自己...
    color_小浣熊阅读 2,389评论 0 4
  • 十二月的雨和着冬日的风击打着手中的伞和迎风的脸 针扎时的刺痒刺着粗糙的皮肤 雨伞在风中像个叛逆的小孩挣扎着向别处费...
    0bc2d410c445阅读 214评论 9 9
  • 《一个女人的自传》是杨步伟的传记。 杨步伟这个名字,对于很多年轻人也许是陌生的,百度一下,她的标签是赵元任夫人。但...
    Yovich阅读 507评论 4 0
  • 1、今天会去看房吗? 金星 天蝎 9宫(毫无悬念去看了) 2、看房会怎样?(因为原先那个业主不在,换另一个) 天王...
    d5b7adb03f96阅读 70评论 0 0