JS事件代理就是通过给父级元素(例如:ul,tr等等)绑定事件,不给子级元素(例如:li,td等等)绑定事件,然后当点击子级元素时,通过事件冒泡机制在其绑定的父元素上触发事件处理函数,主要目的是为了提升性能,因为我不用给每个子级元素绑定事件,只给父级元素绑定一次就好了,在原生js里面就是通过event对象的taget属性实现。

   var ul=document.querySelector("ul");ul.onclick=function(e){//e这里指event对象var target=e.target=e.target||e.srcElement;//target 获取触发事件的目标(li)if(target.nodeName.toLowerCase()==' li '){//目标(li)节点名转小写字母,不转换的话是大写字母alert(target.innerHTML)}
}

jq方式实现相对而言简单

$('ul').on('click','li',function(){//事件逻辑
})

其中第二个参数指的是触发事件的具体目标,特别是给动态添加的元素添加事件。

JS事件代理(也称事件委托)是什么,及实现原理相关推荐

  1. JavaScript系列—简述JS中的事件委托和事件代理

    JS中的事件委托和事件代理 什么是事件委托? 事件委托还有一个名字叫事件代理,JS高程上讲:事件委托就是利用事件冒泡,只制定一个时间处理程序,就可以管理某一类型的所有事件.我用取快递来解释这个现象: ...

  2. JS 事件高级(包括DOM事件流,阻止事件冒泡,阻止事件默认行为,,,以及对我来说,很好用的 事件代理)

    事件对象概念 事件处理函数:事件发生时调用的函数 事件对象:window.event,内置的对象,事件发生的时候会将所有和事件相关的信息都存储在事件对象中,鼠标位置,事件类型,事件目标... //事件 ...

  3. 【DOM系列】你真的理解事件委托(事件代理)吗?

    目录 1. 基本概念 1.1 原理 2. 事件冒泡和事件捕获 代码演示 3. addEventListener的第三个参数 4. 事件委托阶段案例 4.1 事件冒泡案例 4.2 事件捕获案例 5. 经 ...

  4. 使用事件代理实现vue的手风琴组件

    1.为什么要使用事件代理? 在项目中要做一个手风琴组件,需求是页面created事件中请求数据,以显示在列表中,加载数据时显示"正在加载",没有数据了就显示"没有更多数据 ...

  5. javascript 事件冒泡和事件代理

    事件冒泡 简单的讲,当子元素的事件处理函数被触发(如onclick),该事件会从事件源(当前子元素)逐级向上层元素传递,触发祖先元素的 onclik 事件,一直到最外层 html 根元素. 这可能会带 ...

  6. react组件事件代理的原理

    React的事件系统和浏览器事件系统相比,主要增加了两个特性:事件代理.和事件自动绑定. 1.事件代理 区别于浏览器事件处理方式,React并未将事件处理函数与对应的DOM节点直接关联,而是在顶层使用 ...

  7. 浏览器事件代理机制原理?

    关于浏览器事件代理 弄明白浏览器事件代理事前,先了解下事件.事件流. 一,事件 HTML DOM 允许 JavaScript 对 HTML 事件作出反应.即操作对应HTML元素时,会触发相应事件(包含 ...

  8. 9 jQuery事件代理

    1. 事件代理介绍 事件代理就是利用事件冒泡的原理(事件冒泡就是事件会向它的父级一级一级传递),把事件加到父级上,通过判断事件来源,执行相应的子元素的操作,事件代理首先可以极大减少事件绑定次数,提高性 ...

  9. jquery实现事件代理

    $('.parent').on('click','.child',function () {$(".parent").hide();}) 事件代理利用了事件冒泡的原理,通过在父级元 ...

  10. javaScript事件(一)事件流

    一.事件 事件是文档或者浏览器窗口中发生的,特定的交互瞬间. 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字. 事件是javaScript和DOM之间交 ...

最新文章

  1. 电脑工具栏怎么调整到下面_雷电模拟器4.0怎么玩召唤与合成 一键下载轻松游玩 - 工具软件...
  2. (五十六)iOS多线程之NSOperation
  3. eclipse下创建Maven项目
  4. 修改ubuntu的IP地址,静态IP地址
  5. openstack社区_OpenStack社区中发生了什么?
  6. POJ-1681 Painter's Problem 高消
  7. L1-052 2018我们要赢-PAT团体程序设计天梯赛GPLT
  8. freemarker 数组转字符串_freemarker list转json
  9. 机顶盒怎样配置服务器信息,网络机顶盒桌面配置服务器
  10. homebre mysql 启动_Mysql闪退问题图文解决办法
  11. ubuntu22.04美化、办公、开发工具安装
  12. element-ui插件pagination分页中、英文语言切换
  13. 【C++】利用DFS求解水洼数目问题
  14. 柯西不等式证明及推广
  15. php判断股票涨停,竞价预期战法:涨停板次日集合竞价图是否符合预期的短线判断技术(图解)...
  16. git登陆用户的配置
  17. C语言试题189之编写一个程序,按照下图中的样子创建数据结构,最后三个对象都是动态分配的结构。第一个对象则可能是一个静态的指向结构的指针
  18. 【Android】触发按钮的三种方式
  19. xp安装64位vista_在64位Windows Vista上安装iTunes 7
  20. VSTO Office二次开发应用程序键盘鼠标钩子

热门文章

  1. 生存分析/Weibull Distribution韦布尔分布
  2. day106 支付功能与优惠券功能 contentype
  3. Robust Simulation of Small-Scale Thin Features in SPH-based Free Surface Flows
  4. 网易云信iOSSDK集成遇到的坑
  5. TMS320C6748 EMIF时钟配置
  6. Everything的原理
  7. php a标签设置颜色,css超链接锚文本A标签下划线颜色改变
  8. sql快速入门-xuesql.cn
  9. python 常见异常与处理
  10. (Ver 0.5)油猴脚本:微信推送浏览功能拓展