JS中事件委托使用详解

这次给大家带来JS中事件委托使用详解,JS中事件委托使用的注意事项有哪些,下面就是实战案例,一起来看一下。

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

  • 点击
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);

登录后复制

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

  • 点击1
  • 点击2
  • 点击3
  • 点击4
  • 点击5
//使用事件委托的代码 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); } }

登录后复制

我们以上代码把事件委托给了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操作耗费的性能。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

模糊框内使用WebUploader步骤详解

Vue.js里computed使用案例详解

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2763318.html

(0)
上一篇 2025年3月8日 10:09:33
下一篇 2025年2月26日 21:29:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • jquery里filter()方法使用详解

    这次给大家带来jquery里filter()方法使用详解,jquery里filter()方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 定义和用法 filter() 方法返回符合一定条件的元素。 该方法让您规定一个条件。不符合条…

    编程技术 2025年3月8日
    200
  • p5.js实现黄金螺旋动画

    这次给大家带来p5.js实现黄金螺旋动画,p5.js实现黄金螺旋动画的注意事项有哪些,下面就是实战案例,一起来看一下。 效果如下: 主要方法 translate() rotate() arc() 斐波那契螺旋 斐波那契螺旋线也称“黄金螺旋”…

    2025年3月8日
    200
  • 源生JS做出抽奖页面

    这次给大家带来源生JS做出抽奖页面,源生JS做出抽奖页面的注意事项有哪些,下面就是实战案例,一起来看一下。  效果图: 图片素材 : 代码如下,复制即可使用: 幸运抽奖页面 /*CSS代码*/ *{ padding:0; margin:0;…

    2025年3月8日
    200
  • nodejs搭建本地服务器处理跨域

    这次给大家带来nodejs搭建本地服务器处理跨域,nodejs搭建本地服务器处理跨域的注意事项有哪些,下面就是实战案例,一起来看一下。 最近把以前用jquery写的一个小demo拿出来运行的,刚开始的时候忘了开启本地服务导致控制台一直报XM…

    2025年3月8日
    200
  • 使用JS回调函数案例说明

    这次给大家带来使用JS回调函数案例说明,使用JS回调函数的注意事项有哪些,下面就是实战案例,一起来看一下。 在说回调函数之前,不妨先看一段代码,相信有点js基础的同学都能明白他的含义: document.getElementById(‘de…

    编程技术 2025年3月8日
    200
  • JS用事件委托给元素增加事件

    这次给大家带来JS用事件委托给元素增加事件,JS用事件委托给元素增加事件的注意事项有哪些,下面就是实战案例,一起来看一下。 我们在日常开发中有时会通过js创建一些元素,但是如果使用原始的for循环给创建的节点添加事件的方法往往行不通: js…

    编程技术 2025年3月8日
    200
  • JS遍历不规则多维数组方法总结

    这次给大家带来JS遍历不规则多维数组方法总结,JS遍历不规则多维数组的注意事项有哪些,下面就是实战案例,一起来看一下。 直接进入正文: 我们有时候处理数据,可能会遇到一些不规则(无法预料的数据结构),那么拿到这种数据我们如何进行遍历操作呢?…

    2025年3月8日
    200
  • JS+PHP往类动态添加方法

    这次给大家带来JS+PHP往类动态添加方法,JS+PHP往类动态添加方法的注意事项有哪些,下面就是实战案例,一起来看一下。 1.JAVASCRIPT: a. 代码: var a = function(){}var my_a = new a(…

    编程技术 2025年3月8日
    200
  • PHP静态绑定使用详解

    这次给大家带来PHP静态绑定使用详解,PHP静态绑定使用的注意事项有哪些,下面就是实战案例,一起来看一下。 基础知识 1. 范围解析操作符 (::) 可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。 self,parent 和…

    编程技术 2025年3月8日
    200
  • 用p5.js制作烟花特效的示例代码_javascript技巧

    本篇文章主要介绍了用p5.js制作烟花特效的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 前言 之前看过一篇文章,使用processing制作烟花特效。效果如下 fireworks 网上调查了一圈了,…

    2025年3月8日
    200

发表回复

登录后才能评论