X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2FEventManager.js;h=80c03001d5edf5d6f604b5278e21e4a3353a655c;hb=refs%2Fheads%2Fwip_leon_T7094_logo_image_upload_in_boilerplate;hp=87297bdeda331434f9be3dc8d617c63d49261d16;hpb=33d07192aa3742e6ea972a132eb0111ff80dc6f1;p=roojs1 diff --git a/Roo/EventManager.js b/Roo/EventManager.js index 87297bdeda..80c03001d5 100644 --- a/Roo/EventManager.js +++ b/Roo/EventManager.js @@ -14,7 +14,7 @@ * Registers event handlers that want to receive a normalized EventObject instead of the standard browser event and provides * several useful events directly. * See {@link Roo.EventObject} for more details on normalized event objects. - * @singleton + * @static */ Roo.EventManager = function(){ var docReadyEvent, docReadyProcId, docReadyState = false; @@ -100,19 +100,19 @@ Roo.EventManager = function(){ }; var transitionEndVal = false; - var transitionEnd = funciton() + var transitionEnd = function() { if (transitionEndVal) { return transitionEndVal; } - var el = document.createElement('div') + var el = document.createElement('div'); var transEndEventNames = { WebkitTransition : 'webkitTransitionEnd', MozTransition : 'transitionend', OTransition : 'oTransitionEnd otransitionend', transition : 'transitionend' - } + }; for (var name in transEndEventNames) { if (el.style[name] !== undefined) { @@ -122,14 +122,22 @@ Roo.EventManager = function(){ } } + - var listen = function(element, ename, opt, fn, scope){ + var listen = function(element, ename, opt, fn, scope) + { var o = (!opt || typeof opt == "boolean") ? {} : opt; fn = fn || o.fn; scope = scope || o.scope; var el = Roo.getDom(element); + + if(!el){ throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.'; } + + if (ename == 'transitionend') { + ename = transitionEnd(); + } var h = function(e){ e = Roo.EventObject.setEvent(e); var t; @@ -166,14 +174,17 @@ Roo.EventManager = function(){ if(o.buffer){ h = createBuffered(h, o); } + fn._handlers = fn._handlers || []; + + fn._handlers.push([Roo.id(el), ename, h]); - if (ename == 'transitionend') { - ename = transitionEnd(); - } + - E.on(el, ename, h); + E.on(el, ename, h); // this adds the actuall listener to the object.. + + if(ename == "mousewheel" && el.addEventListener){ // workaround for jQuery el.addEventListener("DOMMouseScroll", h, false); E.on(window, 'unload', function(){ @@ -359,16 +370,18 @@ el.on({ * @param {Object} scope An object that becomes the scope of the handler * @param {boolean} options */ - onWindowResize : function(fn, scope, options){ + onWindowResize : function(fn, scope, options) + { if(!resizeEvent){ resizeEvent = new Roo.util.Event(); resizeTask = new Roo.util.DelayedTask(function(){ resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); }); - E.on(window, "resize", function(){ - if(Roo.isIE){ + E.on(window, "resize", function() + { + if (Roo.isIE) { resizeTask.delay(50); - }else{ + } else { resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); } }); @@ -518,6 +531,8 @@ Roo.onReady(function(){ var cls = [ Roo.isIE ? "roo-ie" + : Roo.isIE11 ? "roo-ie11" + : Roo.isEdge ? "roo-edge" : Roo.isGecko ? "roo-gecko" : Roo.isOpera ? "roo-opera" : Roo.isSafari ? "roo-safari" : ""]; @@ -528,6 +543,12 @@ Roo.onReady(function(){ if(Roo.isLinux){ cls.push("roo-linux"); } + if(Roo.isIOS){ + cls.push("roo-ios"); + } + if(Roo.isTouch){ + cls.push("roo-touch"); + } if(Roo.isBorderBox){ cls.push('roo-border-box'); } @@ -557,7 +578,7 @@ Roo.onReady(function(){ Roo.EventManager.on("myDiv", 'click', handleClick); Roo.EventManager.addListener("myDiv", 'click', handleClick); - * @singleton + * @static */ Roo.EventObject = function(){