• 技术文章 >web前端 >js教程

    JS事件委托使用详解

    php中世界最好的语言php中世界最好的语言2018-05-03 15:51:06原创1193
    这次给大家带来JS事件委托使用详解,JS事件委托使用的注意事项有哪些,下面就是实战案例,一起来看一下。

    事件委托(也叫事件代理),其实这个问题也简单,要想弄明白事件委托,我们先要把事件冒泡的机制搞清楚。举个事件冒泡的例子:

    <ul>
        <li>点击</li>
    </ul>
    <script>
        var ul=document.getElementsByTagName('ul')[0];
        var li=document.getElementsByTagName('li')[0];
        ul.addEventListener('click', function(){
          alert('我是ul,我被点击了');
        }, false);
        li.addEventListener('click', function(){
          alert('我是li,我被点击了');
        }, false);
    </script>

    在这段代码中,当我们点击li的时候出发了li的click事件,但是在这时,ul的click事件也被触发了,这就是事件的冒泡。搞明白这个之后,我们就可以来说事件委托了,既然事件能从子元素(li)冒泡的父元素(ul)身上,那么我们就可以给ul自己加一个click事件,把所有li的事件都委托给了我们的父级(ul)身上,可能到这里有些朋友还是不明白这个事件委托到底有什么用,我们在举一个事件委托的实例来说明一下:

    <ul>
        <li>点击1</li>
        <li>点击2</li>
        <li>点击3</li>
        <li>点击4</li>
        <li>点击5</li>
    </ul>
    <script>
        //使用事件委托的代码
        var ul=document.getElementsByTagName('ul')[0];
        ul.addEventListener('click', function(e){
          alert(e.target.innerHTML);
        }, false);
        //不使用事件委托,循环给li添加click事件
        var li=document.getElementsByTagName('li')
        for(var i=0;i<li.length;i++){
          li[i].onclick=function(){
            alert(this.innerHTML);
          }
        }
    </script>

    我们以上代码把事件委托给了ul,只给ul增加点击事件,在浏览器中运行点击对应的li会弹出li对应的innerHTML,这个function(e){};中的e这个参数实际上就是当前我们点击li时,系统传给我们的一些事件信息,e.target实际上指的就是当前我们点击的这个li,在这里我们每次弹出的都是当前点击对象的innerHTML,这就是一个简单的事件委托的案例。

    而事件委托对于我们优化代码意义是非常大的,我们都知道,频繁的dom操作是非常耗费性能的,现在ul里边是5个li,我们假如不用事件委托实现上面代码所作的事情,就需要用for循环,给每个li都写一个click事件,这样一来dom操作就比较多了,如果是10个li呢,100个甚至更多呢,单不说dom操作影响的性能,li过多for循环自身就会占用大量的事件。如果利用事件委托,既避免了for循环耗费的性能,又省去了繁多的dom操作耗费的性能。

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    Vue实现动态刷新Echarts组件

    在bootstrap中使用selectpicker实现下拉框

    url、href、src在JS中的使用

    以上就是JS事件委托使用详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:javascript 详解 使用
    上一篇:Bootstrap中使用WebUploader步骤详解 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• Angular开发问题记录:组件拿不到@Input输入属性• 浅析Node发起HTTP请求的6种方法• 带你了解Nodejs中的非阻塞异步IO• 聊聊基于Node实现单点登录(SSO)的方法• 深入了解Angular(新手入门指南)
    1/1

    PHP中文网