请解释什么是事件代理

系列文章目录

事件代理

事件代理:就是把一个元素的响应事件的函数委托给另一个元素
js的事件流会经过三个阶段:捕获阶段->目标阶段->冒泡阶段,而事件委托就是在冒泡阶段完成。

事件委托

会把一个或一组元素的事件委托到它的父级或者更外层元素上,真正绑定事件的是外层元素,而不是目标元素
当事件响应到目标元素上时,会通过事件冒泡机制从而触发它的外层元素的绑定事件上,然后在外层元素上执行函数
适合事件委托的事件有: click , mousedown , mouseup , keydown , keyup , keypress 从上⾯应⽤场景中。

事件委托存在两⼤优点:
减少整个⻚⾯所需的内存,提升整体性能
动态绑定,减少重复⼯作
但是使⽤事件委托也是存在局限性:
focus 、 blur 这些事件没有事件冒泡机制,所以⽆法进⾏委托绑定事件
mousemove 、 mouseout 这样的事件,虽然有事件冒泡,但是只能不断通过位置去计算定位, 对性能消耗⾼,因此也是不适合于事件委托的
如果把所有事件都⽤事件代理,可能会出现事件误判,即本不该被触发的事件被绑定上了事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值