• 事件委托


     事件委托 : 将某个事件委托给另一个元素( 委托给父级元素  这里的父级可以是直接父元素 也可以是爷爷 曾爷爷... )

     
    事件委托好处:
        1、为某些元素的父级元素添加事件,提高程序的执行效率
        2、动态创建的元素 添加事件时,可以将事件添加在动态创建的函数体外面 
    委托实现 : 
        父级元素.onclick = function(){ ... }
        父级元素.addEventListener("事件",function(){ ... })
     
    获取事件源兼容:
      target = e.target || e.srcElement;  
    不是所有的事件都可以实现委托,不能实现冒泡的事件就不能实现委托
     
    委托实现机制 :  
        利用事件冒泡或捕获机制   
        不是所有的事件都能够实现事件委托   onload  onfocus onblur
    委托实现方式:
        第一种 :  父级元素.事件 = function(){}
        第二种 :  父级元素.addEventListener("",function(){  })
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <div>
                <ul>
                    <li>孩子多个1</li>
                    <li>孩子多个2</li>
                    <li>孩子多个3</li>
                    <li>孩子多个4</li>
                    <li>孩子多个5</li>
                    <li>孩子多个6</li>
                    <li>孩子多个7</li>
                    <li>孩子多个8</li>
                    <li>孩子多个9</li>
                    <li>孩子多个10</li>
                    <li>孩子多个11</li>
                    <li>孩子多个12</li>
                    <li>孩子多个13</li>
                    <li>孩子多个14</li>
                    <li>孩子多个15</li>
                    <li>孩子多个16</li>
                    <li>孩子多个17</li>
                    <li>孩子多个18</li>
                    <li>孩子多个19</li>
                    <li>孩子多个20</li>
                    <p>孩子多个20</p>
                </ul>
            </div>
        </body>
    </html>
    <script>
        //事件委托 : 将事件委托给其他元素
        //当为多个同类的元素添加相同事件时 可以将事件添加到这些元素的父级元素上  
        
        //为所有的li添加单击事件(事件源是li)
        var oUl = document.querySelector("ul");
        oUl.onclick = function(e){
            var e = e || event;
            //重新获取事件源
            var target = e.target || e.srcElement;
            //alert( target.tagName );
            if( target.tagName.toLowerCase() == "li" ){
                target.style.backgroundColor = "pink";
            }
        }
        
        /*oUl.addEventListener( "click" , function(e){
            var e = e || event;
            //重新获取事件源
            var target = e.target || e.srcElement;
            alert( target.tagName );
        },false )*/
    </script>
  • 相关阅读:
    震旦199打印机扫描A4文件
    震旦199打印机使用“多组多张文件”复印功能
    局域网电脑快速添加共享的打印机
    打印机连续打印,速度变慢,打印队列一直自动闪烁
    用IntelliJ IDEA编译,编译之后提示 无效的标记: -release
    hao360恶意篡改IE首页——修复方法
    联想一体机怎么设置u盘启动|联想一体机bios改U盘启动方法(转)
    解决局域网IP冲突
    Cisco Packet Tracer 交换机 2950-24 配置
    静态路由作用和添加删除命令
  • 原文地址:https://www.cnblogs.com/mortalway/p/12066618.html
Copyright © 2020-2023  润新知