• 事件委托


    <!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>
  • 相关阅读:
    Springboot演示小Demo
    快速构建一个 Springboot
    javase练习题--每天写写
    javase练习题
    WebDriver API——延时操作及元素等待
    WebDriver API——javascript的相关操作
    Jenkins安装部署及tomcat的入门介绍
    WebDriver API——鼠标及键盘操作Actions
    sql查询练习
    睡前反省,絮叨絮叨
  • 原文地址:https://www.cnblogs.com/hy96/p/11425528.html
Copyright © 2020-2023  润新知