zoukankan      html  css  js  c++  java
  • 12-事件委托(事件代理)

    什么是事件委托

    通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件。
      举个列子:有三个同事预计会在周一收到快递。为签收快递,有两种办法:一是三个人在公司门口等快递;二是委托给前台MM代为签收。现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递)。前台MM收到快递后,她会判断收件人是谁,然后按照收件人的要求签收,甚至代为付款。这种方案还有一个优势,那就是即使公司里来了新员工(不管多少),前台MM也会在收到寄给新员工的快递后核实并代为签收。

    原理:

      利用冒泡的原理,把事件加到父级上,触发执行效果。

    作用:

    1.性能要好
    2.针对新创建的元素,直接可以拥有事件

    事件源 :

      跟this作用一样(他不用看指向问题,谁操作的就是谁),event对象下的

    使用情景:

      •为DOM中的很多元素绑定相同事件;
      •为DOM中尚不存在的元素绑定事件;

    示例:

    复制代码
    <body>
            <ul>
                <li class="luffy">路飞</li>
                <li>路飞</li>
                <li>路飞</li>
                
            </ul>
    </body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
        
        //通过on()方法
         $('ul').on('click','#namei,.luffy',function(){
            console.log(this);
           })
                
       //未来追加的元素 
        $('ul').append('<a id="namei">娜美</a>')
    
    }
    </script>
    复制代码

    语法:

    on(type,selector,data,fn);

    描述:在选定的元素上绑定一个或多个事件处理函数

    参数解释
    events( String) : 一个或多个空格分隔的事件类型
    selector( String) : 一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素
    data: 当一个事件被触发时,要传递给事件处理函数的event.data
    fn:回调函数
  • 相关阅读:
    php发送邮件
    本地phpstudy集成环境中MYSQL在数据传输时报错- Unknown storage engine 'InnoDB'的解决办法
    一键分享到QQ空间、QQ好友、新浪微博、微信代码
    点分治_学习笔记+题目清单
    AtCoder Beginner Contest168-F (二维离散化)
    Codeforces 1354E(Graph Coloring,二分图+dp)
    Codeforces 832D(Misha, Grisha and Underground,LCA)
    Codeforces Round #643 (Div.2)
    Codeforces 909E(Coprocessor,双队列维护)
    Codeforces 949C(Data Center Maintenance,Tarjan缩点)
  • 原文地址:https://www.cnblogs.com/xintiao-/p/9837094.html
Copyright © 2011-2022 走看看