From ef309f120f872baa91afc991fecaa5f2975d3315 Mon Sep 17 00:00:00 2001 From: oterral Date: Thu, 30 Jan 2014 10:15:02 +0100 Subject: [PATCH] Prevent default behavior on each event of draggable directive --- src/components/DraggableDirective.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/DraggableDirective.js b/src/components/DraggableDirective.js index dd20342f4b..512b4724c2 100644 --- a/src/components/DraggableDirective.js +++ b/src/components/DraggableDirective.js @@ -24,6 +24,7 @@ return function(scope, element, attr) { var startX = 0, startY = 0, x = null, y = null; var eventKey = gaBrowserSniffer.events; + var regex = /^(input|textarea|a|button)$/i; // Firefox doesn't like transition during drag element.addClass('ga-draggable'); @@ -44,8 +45,8 @@ y = element.prop('offsetTop'); - // block user interaction - if (/^(input|textarea|a|button)$/i.test(evt.target.nodeName)) { + // block default interaction + if (!regex.test(evt.target.nodeName)) { evt.preventDefault(); } @@ -76,11 +77,21 @@ top: y + 'px', left: x + 'px' }); + + // block default interaction + if (!regex.test(evt.target.nodeName)) { + evt.preventDefault(); + } } - function dragend() { + function dragend(evt) { $document.unbind(eventKey.move, drag); $document.unbind(eventKey.end, dragend); + + // block default interaction + if (!regex.test(evt.target.nodeName)) { + evt.preventDefault(); + } }