code: function(element, event, selector, callback) {
  		return function(e) {
  			//same event
  			var callbackObjs = delegates[element._mid][event];
  			var handlerQueue = [];
  			var target = e.target;
  			var selectorAlls = {};
  			for (; target && target !== document; target = target.parentNode) {
  				if (target === element) {
  					break;
  				}
  				if (~['click', 'tap', 'doubletap', 'longtap', 'hold'].indexOf(event) && (target.disabled || target.classList.contains('mui-disabled'))) {
  					break;
  				}
  				var matches = {};
  				$.each(callbackObjs, function(selector, callbacks) { //same selector
  					selectorAlls[selector] || (selectorAlls[selector] = $.qsa(selector, element));
  					if (selectorAlls[selector] && ~(selectorAlls[selector]).indexOf(target)) {
  						if (!matches[selector]) {
  							matches[selector] = callbacks;
  						}
  					}
  				}, true);
  				if (!$.isEmptyObject(matches)) {
  					handlerQueue.push({
  						element: target,
  						handlers: matches
  					});
  				}
  			}
  			selectorAlls = null;
  			e = compatible(e); //compatible event
  			$.each(handlerQueue, function(index, handler) {
  				target = handler.element;
  				var tagName = target.tagName;
  				if (event === 'tap' && (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && tagName !== 'SELECT')) {
  					e.preventDefault();
  					e.detail && e.detail.gesture && e.detail.gesture.preventDefault();
  				}
  				$.each(handler.handlers, function(index, handler) {
  					$.each(handler, function(index, callback) {
  						if (callback.call(target, e) === false) {
  							e.preventDefault();
  							e.stopPropagation();
  						}
  					}, true);
  				}, true)
  				if (e.isPropagationStopped()) {
  					return false;
  				}
  			}, true);
  		};
  	}
docs: 返回事件委托的wrap事件回调