事件委托
事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。例如,click事件会一直冒泡到document层次,也就是是说我们可以为整个页面指定一个onclick事件处理程序,而不必给每个可单击元素分别添加事件处理程序。
现在我们回到那个面试题,来写一个事件委托的方法。
/**
* @param type:String,事件类型
* @param element:DOM element,目标元素
* @param callback:Function,业务事件处理程序
*/
function eventHandler(type, element, callback) {
document.addEventListener(type, function(e){
if(e.target === element) {
callback.call(this);
}
}, false);
}