事件委托

 是什么?
事件委托会把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事件的是外层元素,而不是目标元素。
原理?
事件委托的原理是DOM元素的事件冒泡。
适用于?
click,mousedown,mouseup,keydown,keyup,keypress
局限?
focus、blur这些事件没有事件冒泡机制,所以无法进行委托绑定事件
②mousemove、mouseout这样的事件,虽然有事件冒泡,但是只能不断通过位置去计算定位,对性能消耗高,因此也是不适合于事件委托的
③ 如果把所有事件都用事件代理,可能会出现事件误判,让本不该被触发的事件被绑定上了事件
应用场景?
① 减少整个页面所需的内存,提升整体性能。如果我们有一个列表,列表之中有大量的列表项,我们需要在点击列表项的时候响应一个事件 。如果给每个列表项一一都绑定一个函数,那对于内存消耗是非常大的。这时候就可以事件委托,把点击事件绑定在父级元素ul上面,然后执行事件的时候再去匹配目标元素 
② 动态绑定事件的情况下,减少重复工作。如果用户能够随时动态的增加或者去除列表项元素,那么在每一次改变的时候都需要重新给新增的元素绑定事件,给即将删去的元素解绑事件 。如果用了事件委托就没有这种麻烦了,因为事件是绑定在父层的,和目标元素的增减是没有关系的,执行到目标元素是在真正响应执行事件函数的过程中去匹配的。
posted @ 2022-10-03 11:45  vans_huang  阅读(14)  评论(0)    收藏  举报