From f4fbbf9870829f094b7c5aeb0d8c5d15ff48d9d0 Mon Sep 17 00:00:00 2001 From: Candid Dauth Date: Tue, 24 Nov 2015 22:15:37 +0100 Subject: [PATCH] Don't fire draggable:end if draggable:start has not been fired --- ngDraggable.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ngDraggable.js b/ngDraggable.js index 3f4a2ee..1f38578 100644 --- a/ngDraggable.js +++ b/ngDraggable.js @@ -211,21 +211,25 @@ angular.module("ngDraggable", []) var onrelease = function(evt) { if (!_dragEnabled) return; + + $document.off(_moveEvents, onmove); + $document.off(_releaseEvents, onrelease); + _deregisterRootMoveListener(); + + if (!element.hasClass('dragging')) + return; + evt.preventDefault(); $rootScope.$broadcast('draggable:end', {x:_mx, y:_my, tx:_tx, ty:_ty, event:evt, element:element, data:_data, callback:onDragComplete, uid: _myid}); element.removeClass('dragging'); element.parent().find('.drag-enter').removeClass('drag-enter'); reset(); - $document.off(_moveEvents, onmove); - $document.off(_releaseEvents, onrelease); if (onDragStopCallback ){ scope.$apply(function () { onDragStopCallback(scope, {$data: _data, $event: evt}); }); } - - _deregisterRootMoveListener(); }; var onDragComplete = function(evt) {