• 事件委托


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

     
    事件委托好处:
        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>
  • 相关阅读:
    [Java]基础知识复习:例外的在继承中的机制
    2005年7月28日,终于结束了。
    从不知道到知道,从没有到有,是一个质的进步。
    正确的心态、积极的态度、坚定的信心、愉快的心情
    今天终于见到了她。
    textarea自增高(无滚动条)纯js实现
    带,号字符串转成表的函数操作
    MAK密钥集锦
    用户注册信息验证类库
    C#将文档(Word\ Excel\ PowerPoint\ Visio\ text\ XML\ RTF\ CSV )转成Pdf
  • 原文地址:https://www.cnblogs.com/mortalway/p/12066618.html
Copyright © 2020-2023  润新知