diff --git a/.gitignore b/.gitignore index 71ef5b0..3d2b351 100755 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ coverage dist node_modules +package-lock.json *.log .* !.README diff --git a/src/Card.js b/src/Card.js index 88f87fe..5219b97 100644 --- a/src/Card.js +++ b/src/Card.js @@ -58,6 +58,7 @@ const Card = (stack, targetElement, prepend) => { let throwDirectionToEventName; let throwOutDistance; let throwWhere; + let appendedDuringMouseDown; const construct = () => { card = {}; @@ -194,10 +195,16 @@ const Card = (stack, targetElement, prepend) => { })(); } else { targetElement.addEventListener('mousedown', () => { + appendedDuringMouseDown = Card.appendToParent(targetElement) || appendedDuringMouseDown; eventEmitter.trigger('panstart'); }); targetElement.addEventListener('mouseup', () => { + if (appendedDuringMouseDown) { + targetElement.click(); + appendedDuringMouseDown = false; + } + if (isDraging && !isPanning) { eventEmitter.trigger('dragend', { target: targetElement @@ -453,11 +460,14 @@ Card.appendToParent = (element) => { const parentNode = element.parentNode; const siblings = elementChildren(parentNode); const targetIndex = siblings.indexOf(element); + const appended = targetIndex + 1 !== siblings.length; - if (targetIndex + 1 !== siblings.length) { + if (appended) { parentNode.removeChild(element); parentNode.appendChild(element); } + + return appended; }; /**