From f74355af76b100bd7c8624c6dfcf885773aff4b6 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 5 May 2013 04:06:57 -0400 Subject: [PATCH] added functions in DOM module createEvent and dispatch --- ChangeLog | 5 +++ lib/client/dom.js | 95 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) diff --git a/ChangeLog b/ChangeLog index f682129f..ad470a90 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,11 @@ * Added Access-Control-Allow-Origin header. +* Added functions in DOM module: createEvent +(createKeyEvent, createClickEvent, createDblClickEvent), +dispatch +(dispatchKeyEvent, dispatchClickEvent, dispatchDblClickEvent) + 2012.04.22, v0.2.0 diff --git a/lib/client/dom.js b/lib/client/dom.js index 45134981..d8ebddc0 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -270,6 +270,101 @@ var CloudCommander, Util, DOM = {}, CloudFunc; return DOM.addListener('error', pListener, pElement, pUseCapture); }; + /** + * crossbrowser create event + * + * @param pEventName + * @param pKeyCode - not necessarily + */ + DOM.createEvent = function(pEventName, pKeyCode){ + var lEvent = document.createEvent('Event'); + + lEvent.initEvent(pEventName, true, true); + + if(pKeyCode) + lEvent.keyCode = pKeyCode; + + lEvent.isDefaultPrevented = function(){ + return this.defaultPrevented; + }; + + return lEvent; + }; + + + /** + * create keydown event + * + * @param pKeyCode + */ + DOM.createKeyEvent = function(pKeyCode){ + return DOM.createEvent('keydown', pKeyCode); + }; + + /** + * create click event + * + * @param pKeyCode + */ + DOM.createClickEvent = function(){ + return DOM.createEvent('click'); + }; + + /** + * create click event + * + * @param pKeyCode + */ + DOM.createDblClickEvent = function(){ + return DOM.createEvent('dblclick'); + }; + + /** + * dispatch event + * + * @param pEvent + */ + DOM.dispatch = function(pEvent, pElement){ + return (pElement || window).dispatchEvent(pEvent); + }; + + /** + * dispatch keydown event + * + * @param pKeyCode + * @param pElement + */ + DOM.dispatchKeyEvent = function(pKeyCode, pElement){ + var lEvent = DOM.createKeyEvent(pKeyCode), + lRet = DOM.dispatch(lEvent, pElement); + + return lRet; + }; + + /** + * dispatch click event + * + * @param pElement + */ + DOM.dispatchClickEvent = function(pElement){ + var lEvent = DOM.createClickEvent(), + lRet = DOM.dispatch(lEvent, pElement); + + return lRet; + }; + + /** + * dispatch dblclick event + * + * @param pElement + */ + DOM.dispatchDblClickEvent = function(pElement){ + var lEvent = DOM.createDblClickEvent(), + lRet = DOM.dispatch(lEvent, pElement); + + return lRet; + }; + /** * load file countent thrue ajax