zoukankan      html  css  js  c++  java
  • 事件委托

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            
            ul{background: #ccc}
            li{padding: 10px 0;margin: 10px 0;background: red}
        
        </style>
    </head>
    <body>
        <ul>
            <li>link1</li>
            <li abc="l">link2</li>
            <li abc="l">link3</li>
            <li abc="l">link4</li>
            <li>link5</li>
        </ul>
    </body>
    <script>
        // var ali = document.querySelectorAll("ul li");
        // for(var i=0;i<ali.length;i++){
        //     ali[i].onclick = function(){
        //         console.log(this.innerHTML)
        //     }
        // }
    
        var oul = document.querySelector("ul")
        oul.onclick = function(eve){
            var e = eve || window.event;
            var t = e.target || e.srcElement;//target 属性规定哪个 DOM 元素触发了该事件。//target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口。 //鼠标真实点到的那个元素
    
            if(t.getAttribute("abc") == "l"){
                console.log(e.target.innerHTML)
            }
            
        }
    
        // 事件委托:
        //     将多个相同元素的相同事件,添加给页面上现存的共同的父元素,利用事件冒泡,配合事件源,找到真正点击的元素。
    
        // 优势:
        //     1.节省性能
        //     2.可以给页面上暂时不存在的元素绑定事件
    
        // 缺点:
        //     this不好用了
    
    </script>
    </html>
  • 相关阅读:
    如何安装树莓派虚拟机
    树莓派3用create_ap变身无线AP
    Centos 安装golang beego
    Lua中调用C函数
    C++ 用libcurl库进行http通讯网络编程(转)
    SkipList 跳表
    ntohs, ntohl, htons,htonl的比较和详解【转】
    SQLITE3 使用总结(转)
    mysql基础认识1
    mysql 数据类型
  • 原文地址:https://www.cnblogs.com/hy96/p/11425528.html
Copyright © 2011-2022 走看看