From 6b829771a2987cbd28a6d2a18ae98d6d1ffdecce Mon Sep 17 00:00:00 2001 From: Todd Kloots Date: Thu, 6 Aug 2009 00:06:29 -0700 Subject: [PATCH] Fixed focus and blur for Opera and updated API docs --- build/event/event-debug.js | 15 ++++++++++----- build/event/event-min.js | 8 ++++---- build/event/event.js | 15 ++++++++++----- src/event/js/Event.js | 15 ++++++++++----- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build/event/event-debug.js b/build/event/event-debug.js index c1e9e4dc6..1b21a34a7 100644 --- a/build/event/event-debug.js +++ b/build/event/event-debug.js @@ -593,6 +593,11 @@ if (!YAHOO.util.Event) { if (p) { this._simpleAdd(p, type, NOOP, true); } + else { + this.onAvailable(o, function () { + captureHack.call(this, type, o); + }, null, this); + } }; @@ -1080,7 +1085,7 @@ if (!YAHOO.util.Event) { capture = true; if (isOpera) { - captureHack.call(this, el, sType); + captureHack.call(this, sType, el); } } @@ -1111,7 +1116,7 @@ if (!YAHOO.util.Event) { * could not have the listener attached, * or if the operation throws an exception. * @static - * @deprecated use YAHOO.util.Event.on("focus", ...) + * @deprecated use YAHOO.util.Event.on */ addFocusListener: function (el, fn, obj, overrideContext) { @@ -1163,7 +1168,7 @@ if (!YAHOO.util.Event) { * could not have the listener attached, * or if the operation throws an exception. * @static - * @deprecated use YAHOO.util.Event.on("blur", ...) + * @deprecated use YAHOO.util.Event.on */ addBlurListener: function (el, fn, obj, overrideContext) { @@ -2020,7 +2025,7 @@ if (!YAHOO.util.Event) { * @method on * @see addFocusListener * @static - * @deprecated use YAHOO.util.Event.on("focus", ...) + * @deprecated use YAHOO.util.Event.on */ EU.onFocus = EU.addFocusListener; @@ -2029,7 +2034,7 @@ if (!YAHOO.util.Event) { * @method onBlur * @see addBlurListener * @static - * @deprecated use YAHOO.util.Event.on("blur", ...) + * @deprecated use YAHOO.util.Event.on */ EU.onBlur = EU.addBlurListener; diff --git a/build/event/event-min.js b/build/event/event-min.js index 8409f9f86..1fae86904 100644 --- a/build/event/event-min.js +++ b/build/event/event-min.js @@ -1,5 +1,5 @@ -YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var I=false,K=[],L=[],A=0,G=[],B=0,E={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},F=YAHOO.env.ua.ie,C=YAHOO.env.ua.opera,J="focus",D="blur",M=function(){},H=function(O,Q){var N=this.getEl(Q),P=N&&N.parentNode;if(P){this._simpleAdd(P,O,M,true);}};return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:F,_interval:null,_dri:null,_specialTypes:{focus:(F?"focusin":"focus"),blur:(F?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,true);}},onAvailable:function(T,P,R,S,Q){var N=(YAHOO.lang.isString(T))?[T]:T;for(var O=0;O-1;P--){V=(this.removeListener(O[P],N,U)&&V);}return V;}}if(!U||!U.call){return this.purgeElement(O,false,N);}if("unload"==N){for(P=L.length-1;P>-1;P--){X=L[P];if(X&&X[0]==O&&X[1]==N&&X[2]==U){L.splice(P,1);return true;}}return false;}var Q=null;var R=arguments[3];if("undefined"===typeof R){R=this._getCacheIndex(K,O,N,U);}if(R>=0){Q=K[R];}if(!O||!Q){return false;}var W=Q[this.CAPTURE]===true?true:false;try{this._simpleRemove(O,N,Q[this.WFN],W);}catch(T){this.lastError=T;return false;}delete K[R][this.WFN];delete K[R][this.FN];K.splice(R,1);return true;},getTarget:function(P,O){var N=P.target||P.srcElement;return this.resolveTextNode(N);},resolveTextNode:function(O){try{if(O&&3==O.nodeType){return O.parentNode;}}catch(N){}return O;},getPageX:function(O){var N=O.pageX;if(!N&&0!==N){N=O.clientX||0;if(this.isIE){N+=this._getScrollLeft();}}return N;},getPageY:function(N){var O=N.pageY;if(!O&&0!==O){O=N.clientY||0;if(this.isIE){O+=this._getScrollTop();}}return O; -},getXY:function(N){return[this.getPageX(N),this.getPageY(N)];},getRelatedTarget:function(O){var N=O.relatedTarget;if(!N){if(O.type=="mouseout"){N=O.toElement;}else{if(O.type=="mouseover"){N=O.fromElement;}}}return this.resolveTextNode(N);},getTime:function(P){if(!P.time){var O=new Date().getTime();try{P.time=O;}catch(N){this.lastError=N;return O;}}return P.time;},stopEvent:function(N){this.stopPropagation(N);this.preventDefault(N);},stopPropagation:function(N){if(N.stopPropagation){N.stopPropagation();}else{N.cancelBubble=true;}},preventDefault:function(N){if(N.preventDefault){N.preventDefault();}else{N.returnValue=false;}},getEvent:function(P,N){var O=P||window.event;if(!O){var Q=this.getEvent.caller;while(Q){O=Q.arguments[0];if(O&&Event==O.constructor){break;}Q=Q.caller;}}return O;},getCharCode:function(O){var N=O.keyCode||O.charCode||0;if(YAHOO.env.ua.webkit&&(N in E)){N=E[N];}return N;},_getCacheIndex:function(P,S,T,R){for(var Q=0,O=P.length;Q0&&G.length>0);}var S=[];var U=function(W,X){var V=W;if(X.overrideContext){if(X.overrideContext===true){V=X.obj;}else{V=X.overrideContext;}}X.fn.call(V,X.obj);};var O,N,R,Q,P=[];for(O=0,N=G.length;O-1;O--){R=G[O];if(!R||!R.id){G.splice(O,1);}}this.startInterval();}else{if(this._interval){this._interval.cancel();this._interval=null;}}this.locked=false;},purgeElement:function(R,S,U){var P=(YAHOO.lang.isString(R))?this.getEl(R):R;var T=this.getListeners(P,U),Q,N;if(T){for(Q=T.length-1;Q>-1;Q--){var O=T[Q];this.removeListener(P,O.type,O.fn);}}if(S&&P&&P.childNodes){for(Q=0,N=P.childNodes.length;Q-1;Q--){P=K[Q];if(P){O.removeListener(P[O.EL],P[O.TYPE],P[O.FN],Q);}}P=null;}O._simpleRemove(window,"unload",O._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var N=document.documentElement,O=document.body;if(N&&(N.scrollTop||N.scrollLeft)){return[N.scrollTop,N.scrollLeft];}else{if(O){return[O.scrollTop,O.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(P,Q,O,N){P.addEventListener(Q,O,(N));};}else{if(window.attachEvent){return function(P,Q,O,N){P.attachEvent("on"+Q,O);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(P,Q,O,N){P.removeEventListener(Q,O,(N));};}else{if(window.detachEvent){return function(O,P,N){O.detachEvent("on"+P,N);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener; +YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var I=false,K=[],L=[],A=0,G=[],B=0,E={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},F=YAHOO.env.ua.ie,C=YAHOO.env.ua.opera,J="focus",D="blur",M=function(){},H=function(O,Q){var N=this.getEl(Q),P=N&&N.parentNode;if(P){this._simpleAdd(P,O,M,true);}else{this.onAvailable(Q,function(){H.call(this,O,Q);},null,this);}};return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:F,_interval:null,_dri:null,_specialTypes:{focus:(F?"focusin":"focus"),blur:(F?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,true);}},onAvailable:function(T,P,R,S,Q){var N=(YAHOO.lang.isString(T))?[T]:T;for(var O=0;O-1;P--){V=(this.removeListener(O[P],N,U)&&V);}return V;}}if(!U||!U.call){return this.purgeElement(O,false,N);}if("unload"==N){for(P=L.length-1;P>-1;P--){X=L[P];if(X&&X[0]==O&&X[1]==N&&X[2]==U){L.splice(P,1);return true;}}return false;}var Q=null;var R=arguments[3];if("undefined"===typeof R){R=this._getCacheIndex(K,O,N,U);}if(R>=0){Q=K[R];}if(!O||!Q){return false;}var W=Q[this.CAPTURE]===true?true:false;try{this._simpleRemove(O,N,Q[this.WFN],W);}catch(T){this.lastError=T;return false;}delete K[R][this.WFN];delete K[R][this.FN];K.splice(R,1);return true;},getTarget:function(P,O){var N=P.target||P.srcElement;return this.resolveTextNode(N);},resolveTextNode:function(O){try{if(O&&3==O.nodeType){return O.parentNode;}}catch(N){}return O;},getPageX:function(O){var N=O.pageX;if(!N&&0!==N){N=O.clientX||0;if(this.isIE){N+=this._getScrollLeft();}}return N;},getPageY:function(N){var O=N.pageY;if(!O&&0!==O){O=N.clientY||0; +if(this.isIE){O+=this._getScrollTop();}}return O;},getXY:function(N){return[this.getPageX(N),this.getPageY(N)];},getRelatedTarget:function(O){var N=O.relatedTarget;if(!N){if(O.type=="mouseout"){N=O.toElement;}else{if(O.type=="mouseover"){N=O.fromElement;}}}return this.resolveTextNode(N);},getTime:function(P){if(!P.time){var O=new Date().getTime();try{P.time=O;}catch(N){this.lastError=N;return O;}}return P.time;},stopEvent:function(N){this.stopPropagation(N);this.preventDefault(N);},stopPropagation:function(N){if(N.stopPropagation){N.stopPropagation();}else{N.cancelBubble=true;}},preventDefault:function(N){if(N.preventDefault){N.preventDefault();}else{N.returnValue=false;}},getEvent:function(P,N){var O=P||window.event;if(!O){var Q=this.getEvent.caller;while(Q){O=Q.arguments[0];if(O&&Event==O.constructor){break;}Q=Q.caller;}}return O;},getCharCode:function(O){var N=O.keyCode||O.charCode||0;if(YAHOO.env.ua.webkit&&(N in E)){N=E[N];}return N;},_getCacheIndex:function(P,S,T,R){for(var Q=0,O=P.length;Q0&&G.length>0);}var S=[];var U=function(W,X){var V=W;if(X.overrideContext){if(X.overrideContext===true){V=X.obj;}else{V=X.overrideContext;}}X.fn.call(V,X.obj);};var O,N,R,Q,P=[];for(O=0,N=G.length;O-1;O--){R=G[O];if(!R||!R.id){G.splice(O,1);}}this.startInterval();}else{if(this._interval){this._interval.cancel();this._interval=null;}}this.locked=false;},purgeElement:function(R,S,U){var P=(YAHOO.lang.isString(R))?this.getEl(R):R;var T=this.getListeners(P,U),Q,N;if(T){for(Q=T.length-1;Q>-1;Q--){var O=T[Q];this.removeListener(P,O.type,O.fn);}}if(S&&P&&P.childNodes){for(Q=0,N=P.childNodes.length;Q-1;Q--){P=K[Q];if(P){O.removeListener(P[O.EL],P[O.TYPE],P[O.FN],Q);}}P=null;}O._simpleRemove(window,"unload",O._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var N=document.documentElement,O=document.body;if(N&&(N.scrollTop||N.scrollLeft)){return[N.scrollTop,N.scrollLeft];}else{if(O){return[O.scrollTop,O.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(P,Q,O,N){P.addEventListener(Q,O,(N));};}else{if(window.attachEvent){return function(P,Q,O,N){P.attachEvent("on"+Q,O);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(P,Q,O,N){P.removeEventListener(Q,O,(N));};}else{if(window.detachEvent){return function(O,P,N){O.detachEvent("on"+P,N);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener; /* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller/Diego Perini */ -if(EU.isIE){if(window!==window.top){document.onreadystatechange=function(){if(document.readyState=="complete"){document.onreadystatechange=null;EU._ready();}};}else{YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G); -}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C