事件委托

复制代码
<!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>
复制代码

 

posted @   菜鸟小何  阅读(203)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示