首页 > 其他 > 详细

事件委托

时间:2020-06-23 17:00:18      阅读:33      评论:0      收藏:0      [点我收藏+]
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>
    <ul>
        <li class="item">按钮</li>
        <li class="item">按钮</li>
        <li class="item">按钮</li>
        <li class="item">按钮</li>
    </ul>
</body>
<script>
    // 不使用事件委托,那就要遍历每一个li元素,给每个li元素绑定一个点击事件,
    //这样的做法非常耗费内存,如果有100个、1000个li元素,那对性能的影响是非常大的。
    window.onload = function () {
        let lis = document.getElementsByClassName(item)
        for (let i = 0; i < lis.length; i++) {
            lis[i].onclick = function () {
                console.log(用力的点我)
            }
        }
    }
</script>

</html>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>
    <ul id="wrap">
        <li class="item">按钮</li>
        <li class="item">按钮</li>
        <li class="item">按钮</li>
        <li class="item">按钮</li>
    </ul>
</body>
<script>
    window.onload = function () {
        let ul = document.getElementById(wrap)
        ul.onclick = function (ev) {
            // 获取到事件对象
            let e = ev || window.event
            console.log(ev, window.event);
            // 如果点击的元素的calssName为item
            if (e.target.className === item) {
                console.log(用力的点我)
            }
        }
    }
</script>

</html>

 

事件委托

原文:https://www.cnblogs.com/w-y-1/p/13182674.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!