事件委托简述

273 阅读2分钟

事件委托应用场景

1.你如何给100个按钮添加监听事件?

答:监听这100个按钮的父级元素,等冒泡的时候判断target是不是这100个按钮的中的一个以及具体是哪一个。 优点:省监听数(内存)

2.如何监听目前不存在的元素的监听事件?

答:监听父级元素,等点击的时候判断一下是不是我想要的元素即可。

优点:可以监听父级元素。

概述

事件委托有哪些好处,才会被现在人们大量的使用呢?

那么就得先说说事件的一些性能和使用的问题:

1:绑定事件越多,浏览器内存占用越大,严重影响性能。

2:ajax的出现,局部刷新的盛行,导致每次加载完,都要重新绑定事件

3:部分浏览器移除元素时,绑定的事件并没有被及时移除,导致的内存泄漏,严重影响性能

4:大部分ajax局部刷新的,只是显示的数据,而操作却是大部分相同的,重复绑定,会导致代码的耦合性过大,严重影响后期的维护。

这些个限制,都是直接给元素事件绑定带来的问题,所以经过了一些前辈的总结试验,也就有了事件委托这个解决方案。

事件委托基础

如果我们相对一个技术点了解的更深,用的更好,那么我们就需要对这个技术点的原理有更多的了解,那么事件委托的实现原理是什么呢?

1:事件的冒泡,所以才可以在父元素来监听子元素触发的事件。

2:DOM的遍历,一个父级元素包含的子元素过多,那么当一个事件被触发时,是否触发了某一种类型的元素呢?

这是事件委托的两个基础,也是事件委托的核心,跟事件委托相关的技术点,如果碰到什么问题,都可以在这两个点进行切入,来寻求解决方案。