function listener(element, selector, type, callback) {
    return function(e) {
        e.delegateTarget = closest(e.target, selector);

        if (e.delegateTarget) {
            callback.call(element, e);
        }
    }
}
Finds closest match and invokes callback.

@param {Element} element
@param {String} selector
@param {String} type
@param {Function} callback
@return {Function}