事件委托笔记

事件委托原理:事件冒泡机制。

什么是事件委托:

事件委托——给父元素绑定事件,用来监听子元素的冒泡事件,并找到是哪个子元素的事件。

优点:1.可以大量节省内存占用,减少事件注册。比如ul上代理所有li的click事件就很不错。

2.可以实现当新增子对象时,无需再对其进行事件绑定,对于动态内容部分尤为合适

缺点:事件代理的常用应用应该仅限于上述需求,如果把所有事件都用事件代理,可能会出现事件误判。即本不该被触发的事件被绑定上了事件。

<li id="ul1>111</li>

<li>222</li>

<li>333</li>

    var oUl1 = document.getElementById('ul1');

    myAddEvent(oUl1,'click',function(e){

        var e = e || window.event;

        var target = e.target || e.srcElement;

        if(target.nodeName.toLowerCase() == 'li'){

            alert(target.innerHTML);

            target.style.background = 'red';

        }

    });

    // 事件绑定封装成js函数

    function myAddEvent(obj, ev, fn){

        if(obj.attachEvent){ // ie

            obj.attachEvent('on'+ev, fn);

        }else{

            obj.addEventListener(ev, fn, false);

        }

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前端开发面试题 <a name='preface'>前言</a> 只看问题点这里 看全部问题和答案点这里 本文由我...
    自you是敏感词阅读 827评论 0 3
  • @转自GitHub 介绍js的基本数据类型。Undefined、Null、Boolean、Number、Strin...
    YT_Zou阅读 1,234评论 0 0
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,613评论 1 19
  • 记忆中的第一次相遇### 记得第一次见你,是我刚进大学的第一个礼拜日,那时候我们还在军训吧!校园食堂大门旁的路灯下...
    佟瑾年阅读 264评论 0 0
  • 其实没人能告诉你,放弃一个人,到底应该怎么做!你只能自己熬过无数黑漆漆的夜晚,然后第二天照常起床,假装什...
    刺眼的女人妆阅读 488评论 0 0