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

    事件冒泡本身的特性,会带来的坏处,也会带来的好处。

    什么是事件委托

    把事情委托给别人,代为处理。

    事件委托也称为事件代理,在 jQuery 里面称为事件委派。

    说白了就是,不给子元素注册事件,给父元素注册事件,把处理代码在父元素的事件中执行。

    生活中的代理:

     

    <!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>
    </head>

    <body>
        <ul>
            <li>知否知否,点我应有弹框在手!</li>
            <li>知否知否,点我应有弹框在手!</li>
            <li>知否知否,点我应有弹框在手!</li>
            <li>知否知否,点我应有弹框在手!</li>
            <li>知否知否,点我应有弹框在手!</li>
        </ul>
        <script>
            // 事件委托的核心原理:给父节点添加侦听器, 利用事件冒泡影响每一个子节点
            var ul = document.querySelector('ul');
            ul.addEventListener('click', function(e) {
                // alert('知否知否,点我应有弹框在手!');
                // e.target 这个可以得到我们点击的对象
                e.target.style.backgroundColor = 'pink';


            })
        </script>
    </body>

    </html>
     

    事件委托的原理

    给父元素注册事件,利用事件冒泡,当子元素的事件触发,会冒泡到父元素,然后去控制相应的子元素。

    事件委托的作用

    • 我们只操作了一次 DOM ,提高了程序的性能。

    • 动态新创建的子元素,也拥有事件。

  • 相关阅读:
    2020 CCPC-Wannafly Winter Camp Day6 ---I. 变大!
    Codeforces 1295F Good Contest
    2020 CCPC-Wannafly Winter Camp Day6 ---A. Convolution
    centos下kubernetes+flannel部署(旧)
    无网络centos7中部署kubernetes
    利用Openvswitch实现不同物理机中的Docker容器互连
    docker-py的配置与使用
    通过Docker配置DNS服务器
    在 OS X Yosemite 中部署Mesos
    Docker初识
  • 原文地址:https://www.cnblogs.com/yanlei369343/p/13887714.html
Copyright © 2011-2022 走看看