From fef50bca82ca939b6dffb55ae2c42c4de4affa62 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 24 Mar 2014 04:31:27 -0400 Subject: [PATCH] feature(listeners) changeLinks touch: if file current -> change dir --- lib/client/listeners.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 71e3fe8e..a9229b24 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -87,16 +87,22 @@ var Util, DOM, CloudCmd; clearStorage = DOM.getByClass('clear-storage', pathElement), refresh = DOM.getByDataName('js-refresh', pathElement), - onClick = function (event) { + onClick = function (event) { var ctrl = event.ctrlKey; if (!ctrl) DOM.preventDefault(event); }, - onTouchEnd = function(event) { - setCurrentFile(event); - loadDirOnce(event); + onTouch = function(event) { + setCurrentFile(event, function(element) { + var isCurrent = DOM.isCurrentFile(element); + + if (isCurrent) + loadDirOnce(event); + else + DOM.setCurrentFile(element); + }); }; /* ставим загрузку гифа на клик*/ @@ -134,8 +140,8 @@ var Util, DOM, CloudCmd; current.id = id; events = !isDir ? {} : { - 'dblclick' : loadDirOnce, - 'touchend' : onTouchEnd + 'dblclick' : loadDirOnce, + 'touchstart' : onTouchEnd }; Util.copyObj(events, { @@ -198,7 +204,7 @@ var Util, DOM, CloudCmd; link); } - function setCurrentFile(event) { + function setCurrentFile(event, callback) { var element = event.target, tag = element.tagName; @@ -208,7 +214,10 @@ var Util, DOM, CloudCmd; tag = element.tagName; } while(tag !== 'LI'); - DOM.setCurrentFile(element); + if (callback) + Util.exec(callback, element); + else + DOM.setCurrentFile(element); } function appStorage() {