事件委托就是利用事件冒泡,只指定一个事件处理程序,绑定在父元素上,就可以管理某一类型的所有事件,且是动态的。
动态监听
省监听内存
事件委托,通俗说就是把一个元素响应事件(click,keydown…)的函数委托到另一个元素;
就拿点击事件来说吧,一般要给一个元素添加点击事件,都是直接给那个元素添加,但是,假设你要点击一个现在还不存在的元素,怎么办!
分析:因为我们还不知道要监听事件的元素是什么,但是我们知道它的父元素,我们可以先监听它的父元素,等触发事件的时候,再看看是不是我们想要监听的元素。这样就完成对不存在的元素进行监听。这就实现了动态绑定事件。
在很多时候,我们需要通过AJAX或者用户操作动态的增加或删除列表项元素,那么每一次改变元素都要重新给新元素绑定事件,给删除的元素解绑事件;
这时候,事件委托无疑于就是很好的办法,因为事件绑定在父元素的,和目标元素的增减是没有关系的,执行到目标元素是在响应执行事件函数的过程匹配的,所以事件委托在这种情况下可以减少重复工作。
再来说一种情况吧,如果我们有一个列表,里面有大量列表项,需要给每个列表项都绑定一个点击事件。