-<html>\r
-<head>\r
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \r
- <title>The source code</title>\r
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
-</head>\r
-<body onload="prettyPrint();">\r
- <pre class="prettyprint lang-js">Ext.lib.Event = function() {
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>The source code</title>
+ <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
+</head>
+<body onload="prettyPrint();">
+ <pre class="prettyprint lang-js">/*!
+ * Ext JS Library 3.3.1
+ * Copyright(c) 2006-2010 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+Ext.lib.Event = function() {
var loadComplete = false,
unloadListeners = {},
retryCount = 0,
// constants
POLL_RETRYS = 200,
POLL_INTERVAL = 20,
- EL = 0,
TYPE = 0,
FN = 1,
- WFN = 2,
OBJ = 2,
ADJ_SCOPE = 3,
SCROLLLEFT = 'scrollLeft',
function _tryPreloadAttach() {
var ret = false,
notAvail = [],
- element, i, len, v,
+ element, i, v, override,
tryAgain = !loadComplete || (retryCount > 0);
- if (!locked) {
+ if(!locked){
locked = true;
-
- for (i = 0, len = onAvailStack.length; i < len; i++) {
+
+ for(i = 0; i < onAvailStack.length; ++i){
v = onAvailStack[i];
if(v && (element = doc.getElementById(v.id))){
if(!v.checkReady || loadComplete || element.nextSibling || (doc && doc.body)) {
- element = v.override ? (v.override === true ? v.obj : v.override) : element;
+ override = v.override;
+ element = override ? (override === true ? v.obj : override) : element;
v.fn.call(element, v.obj);
- v = null;
- } else {
+ onAvailStack.remove(v);
+ --i;
+ }else{
notAvail.push(v);
}
}
clearInterval(_interval);
_interval = null;
}
-
ret = !(locked = false);
}
return ret;
// This function should ALWAYS be called from Ext.EventManager
removeListener: function(el, eventName, fn) {
el = Ext.getDom(el);
- var i, len, li;
+ var i, len, li, lis;
if (el && fn) {
- if (eventName == UNLOAD) {
- if (unloadListeners[id] !== undefined) {
- for (i = 0, len = unloadListeners[id].length; i < len; i++) {
- li = unloadListeners[id][i];
- if (li && li[TYPE] == eventName && li[FN] == fn) {
- unloadListeners[id].splice(i, 1);
+ if(eventName == UNLOAD){
+ if((lis = unloadListeners[el.id]) !== undefined){
+ for(i = 0, len = lis.length; i < len; i++){
+ if((li = lis[i]) && li[TYPE] == eventName && li[FN] == fn){
+ unloadListeners[el.id].splice(i, 1);
}
}
}
getRelatedTarget : function(ev) {
ev = ev.browserEvent || ev;
return this.resolveTextNode(ev.relatedTarget ||
- (ev.type == MOUSEOUT ? ev.toElement :
- ev.type == MOUSEOVER ? ev.fromElement : null));
+ (/(mouseout|mouseleave)/.test(ev.type) ? ev.toElement :
+ /(mouseover|mouseenter)/.test(ev.type) ? ev.fromElement : null));
},
getPageX : function(ev) {
_load : function(e) {
loadComplete = true;
- var EU = Ext.lib.Event;
+
if (Ext.isIE && e !== true) {
- // IE8 complains that _load is null or not an object
- // so lets remove self via arguments.callee
+ // IE8 complains that _load is null or not an object
+ // so lets remove self via arguments.callee
doRemove(win, "load", arguments.callee);
}
},
_unload : function(e) {
var EU = Ext.lib.Event,
- i, j, l, v, ul, id, len, index, scope;
-
+ i, v, ul, id, len, scope;
for (id in unloadListeners) {
ul = unloadListeners[id];
}
};
- unloadListeners = null;
Ext.EventManager._unload();
doRemove(win, UNLOAD, EU._unload);
return pub;
}();
-</pre> \r
-</body>\r
+</pre>
+</body>
</html>
\ No newline at end of file