当我们需要给许多DOM添加同一个类型的事件处理程序时,逐个添加事件处理程序就会有两个问题:每个事件处理函数都是对象,而对象会占用内存,因此会小号性能;二是多个DOM引用会延迟页面交互的就绪时间,降低用户体验。
这时可以考虑事件委托,事件委托的原理是通过给高层元素添加一个事件处理程序,利用事件的冒泡性质捕获一系列的事件,通过判断event.target来选择性的进行处理。这样就可以实现给许多DOM元素添加一类的事件处理程序。在减少了DOM引用的同时,还减少了事件处理的函数。此外,如果我们把事件添加到document节点上,那么只要页面元素可见就可以进行交互操作,而无需等待页面加载完毕。