事件委托

事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。例如,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);
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注