From 6023910162c9b90c9c4aa8c4d8a484cd495f1983 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 6 Jun 2014 03:40:23 -0400 Subject: [PATCH] fix(events) remove: type, listener, element -> type, element, listener --- lib/client/events.js | 51 ++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/lib/client/events.js b/lib/client/events.js index 1356a827..20f2d768 100644 --- a/lib/client/events.js +++ b/lib/client/events.js @@ -10,35 +10,44 @@ var Util, DOM; function EventsProto() { var Events = this, parseArgs = function(eventName, element, listener, callback) { - var tmp, isFunc, - type = Util.getType(eventName); - + var isFunc, isElement, error, + EVENT_NAME = 0, + ELEMENT = 1, + type = Util.getType(eventName); + switch(type) { default: - tmp = eventName; - eventName = element; - element = tmp; + isElement = type.match('element'); - parseArgs( - eventName, - element, - listener, - callback - ); + if (!isElement) { + error = new Error('unknown eventName: ' + type); + throw(error); + } else { + eventName = arguments[ELEMENT]; + element = arguments[EVENT_NAME]; + + parseArgs( + eventName, + element, + listener, + callback + ); + } break; case 'string': - isFunc = Util.isFunction(element); + isFunc = Util.isFunction(element); if (isFunc) { - listener = element; - element = window; + listener = element; + element = window; } - callback(element || window, + callback(element, [ eventName, listener, - null); + null + ]); break; case 'array': @@ -78,9 +87,7 @@ var Util, DOM; this.add = function(type, element, listener) { Util.checkArgs(arguments, ['type']); - parseArgs(type, element, listener, function(element) { - var args = Util.slice(arguments, 1); - + parseArgs(type, element, listener, function(element, args) { window.addEventListener.apply(element, args); }); @@ -115,9 +122,7 @@ var Util, DOM; this.remove = function(type, element, listener) { Util.checkArgs(arguments, ['type']); - parseArgs(type, listener, element, function(element) { - var args = Util.slice(arguments, 1); - + parseArgs(type, element, listener, function(element, args) { window.removeEventListener.apply(element, args); });