From fd2c227cf7b0678bfc4785ae75c2411df2e7e578 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 21 Jan 2013 10:18:43 -0500 Subject: [PATCH] refactored --- lib/client.js | 8 ++++---- lib/client/dom.js | 40 ++++++++++++++++++++++++++++++++-------- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/lib/client.js b/lib/client.js index 0c69fedf..37aa6a81 100644 --- a/lib/client.js +++ b/lib/client.js @@ -759,12 +759,12 @@ CloudCmd._getJSONfromFileTable = function(){ return CloudCmd; })(); -window.onload = function(){ - 'use strict'; - + +DOM.addOneTimeListener('load', function cloudcmdLoad(){ + DOM.removeListener('load', cloudcmdLoad); /* базовая инициализация*/ CloudCommander.init(); /* загружаем Google Analytics */ CloudCommander.GoogleAnalytics(); -}; +}); diff --git a/lib/client/dom.js b/lib/client/dom.js index 8f35728e..bcea7207 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -70,17 +70,19 @@ var CloudCommander, Util, * @param pClass */ DOM.addClass = function(pElement, pClass){ - var lRet_b = true; + var lRet; - var lClassList = pElement.classList; - if(lClassList){ - if( !lClassList.contains(pClass) ) - lClassList.add(pClass); - else - lRet_b = false; + if(pElement){ + var lClassList = pElement.classList; + + if(lClassList){ + if( !lClassList.contains(pClass) ) + lClassList.add(pClass); + lRet = true; + } } - return lRet_b; + return lRet; }; /** @@ -102,6 +104,26 @@ var CloudCommander, Util, return lRet; }; + /** + * safe add event listener + * @param pType + * @param pListener + * @param pUseCapture + * @param pElement {document by default} + */ + DOM.addOneTimeListener = function(pType, pListener, pUseCapture, pElement){ + var lRet = this; + + DOM.addListener(pType, + function oneTime(pEvent){ + DOM.removeListener(pType, oneTime, pUseCapture, pElement); + pListener(pEvent); + }, + pUseCapture, pElement); + + return lRet; + }; + /** * safe remove event listener * @param pType @@ -497,6 +519,8 @@ var CloudCommander, Util, var lLoad = function(pEvent){ DOM.removeListener('load', lLoad, false, lElement); + DOM.removeListener('error', lError, false, lElement); + Util.exec(lFunc, pEvent); },