位置: 编程技术 - 正文

浅析javascript中的事件代理(细说javascript)

编辑:rootadmin

推荐整理分享浅析javascript中的事件代理(细说javascript),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript的,细说javascript,javascript概述及作用,javascript entries,细说javascript,细说javascript,细说javascript,细说javascript,内容如对您有帮助,希望把文章链接给更多的朋友!

本文的主要内容是根据前不久面试某家公司Web前端开发岗位,面试时做的一道数组去重问题的解题思路进行整理的,分享给大家。

题目本身很简单:一个ul中有一千个li,如何给这一千个li绑定一个鼠标点击事件,当鼠标点击时alert出这个li的内容和li的位置坐标xy,

需要考虑到浏览器兼容性、事件冒泡、效率等问题。看到问题后我就直接在纸上写下了如下答案:

浅析javascript中的事件代理(细说javascript)

面试结果:写完了又看了一遍感觉没必要考虑兼容性、事件冒泡啊。效率的话,想了想,也想不出怎么提升了,就这样给面试官看了。面试官人也挺好的,他看了之后说:你并没有考虑到我说的重点啊,你这样次循环添加点击事件效率是很低的。然后就跟我讲了利用事件冒泡的特性,来提高效率,即事件代理(ps:以前做项目有遇到过要阻止事件冒泡的时候,但利用事件冒泡特性提高效率却还完全不知道)。听了面试官讲的涨了姿势,回来后自己也上网查了一下,现在自己再总结下当做记录自己学习的过程吧:

事件代理(Event Delegation),又称之为事件委托。是 JavaScript 中常用绑定事件的常用技巧。顾名思义,“事件代理”即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。为什么要这么做?众所周知,DOM操作是十分消耗性能的,所以重复的事件绑定简直是性能杀手。而事件代理的核心思想,就是通过尽量少的绑定,去监听尽量多的事件。程序猿的事,没代码说个J8,下面贴出代码:

嗯,现在代码去掉了for循环,提高了效率,也有了兼容性方面的处理,感觉这个答案应该可以了吧。上面说的也就是为了一道笔试题,下面就再本着学术研究的思想说说事件代理:

在传统的事件处理中,你按照需要为每一个元素添加或者是删除事件处理器。然而,事件处理器将有可能导致内存泄露或者是性能下降——你用得越多这种风险就越大。JavaScript事件代理则是一种简单的技巧,通过它你可以把事件处理器添加到一个父级元素上,这样就避免了把事件处理器添加到多个子级元素上。事件代理用到了两个在JavaSciprt事件中常被忽略的特性:事件冒泡以及目标元素。当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。任何一个事件的目标元素都是最开始的那个元素,在我们的这个例子中也就是按钮,并且它在我们的事件对象中以属性的形式出现。使用事件代理,我们可以把事件处理器添加到一个元素上,等待一个事件从它的子级元素里冒泡上来,并且可以得知这个事件是从哪个元素开始的。

关于事件代理,今天也是初次接触,就先写到这吧,希望对大家的学习有所帮助。

实现非常简单的js双向数据绑定 双向数据绑定指的就是,绑定对象属性的改变到用户界面的变化的能力,反之亦然。换种说法,如果我们有一个user对象和一个name属性,一旦我们赋了一

基于JavaScript实现仿京东图片轮播效果 js实现仿京东图片轮播效果,当鼠标划在窗口上面停止计时器,鼠标离开窗口,开启计时器,鼠标划在页签上面,停止计时器,手动切换,通过定义计时

详解javascript数组去重问题 首先,我想到的是另建一个结果数组,用来存储原始数组中不重复的数据。遍历原始数组依次跟结果数组中的元素进行比较,检测是否重复。于是乎,

标签: 细说javascript

本文链接地址:https://www.jiuchutong.com/biancheng/383683.html 转载请保留说明!

上一篇:详解javascript中的事件处理(javascript的)

下一篇:实现非常简单的js双向数据绑定(实现非常简单的英文)

  • 先发表还是先出版
  • 报表中的存货是如何填报的
  • 企业外币账户开户流程
  • 收到天使投资如何做账
  • 稿费的个人所得税税率是多少
  • 所有者权益是
  • 物业费计入哪里
  • 培训咨询企业的发展前景
  • 过桥过闸通行费会计分录
  • 融资租赁承租方增值税处理
  • 采购设备包含安装费用吗
  • 收到借款确认书模板
  • 贴息是谁支付
  • 小企业营业外支出
  • 处理固定资产一个月卖一点
  • 外贸企业0退税率的账务处理
  • 工程部用的测试仪器
  • 货款为现金如何做记账账款凭证?
  • 购入债券计入什么科目
  • 国债利润收入属于收入吗
  • 购买方开具红字信息表流程
  • 电费发票勾选是啥意思
  • 增值税发票当期能抵扣吗
  • 核定征收和定期定额的区别
  • 公司店铺刷单的收入怎么记账
  • 生产成本期末余额在贷方
  • 集团内部资金往来用什么科目核算
  • 此 google 帐号尚未与设备关联
  • 商业保险费包括哪些
  • 网络平台上进行网络营销
  • 2020最新win10密钥
  • 未分配利润转增股本交印花税
  • php教程 ftp 函数
  • 企业清算剩余财产分配是否交个人所得税
  • 让劳务公司代发工资
  • win10多任务视图怎么关闭
  • vue项目页面写在哪里
  • chat gpt介绍开头
  • 交易性金融资产属于流动资产
  • 国有资产无偿划转协议
  • 违约金赔偿款怎么开票
  • 股东增资是不是利好
  • 公司网站维护费用计哪个科目
  • javaweb项目登录页面不跳转
  • 法院判定支付对方诉讼费,我可以入账吗
  • acc字幕文件怎么转换srt字幕
  • 角点检测算法
  • 解压包的命令
  • 一个简单的小实验
  • 租房开的发票收的税怎么做账?
  • 卖固定资产计入
  • 开房租发票交的税因优惠政策退税如何账务处理?
  • 物流货物丢失赔偿按照运费10倍
  • 普票要盖发票的章子吗
  • 专项储备计提和使用理解
  • 工装费用制度
  • 小规模未达到起征点如何结转
  • 社保局会给失业人员打电话吗
  • 购买土地支付的印花税账务处理
  • 当月发票已认证还能作废吗
  • 资产负债表和利润表的利润不一致
  • 密码区出框
  • 企业净资产怎么填
  • 主营业务成本包括哪些费用
  • 未分配利润是什么会计科目
  • mysql中的存储过程
  • 电脑重装系统步奏
  • xp系统禁止程序联网
  • ubuntu debian centos
  • 删除kernel
  • wps linux版本是什么意思
  • jquery实战
  • 显示解析包时出错是怎么回事
  • sql服务3417
  • unity接入第三方sdk
  • ubuntu快捷键大全
  • 消费税的税收优惠政策导向
  • 如何查询企业是小规模还是一般
  • 增值税发票选择确认平台查询不到以开出的进项发票?
  • 深圳国税申报系统恢复数据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设