From a002680ba96639f0a6c959f25048c3ebac043a10 Mon Sep 17 00:00:00 2001 From: Paul Bakaus Date: Tue, 24 Jun 2008 11:47:42 +0000 Subject: [PATCH] sortable:fixed #3019, stop being fird too early --- tests/sortable.js | 12 ++++++++++++ ui/ui.sortable.js | 11 +++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/tests/sortable.js b/tests/sortable.js index 95fd9cbfd..c9da3b729 100644 --- a/tests/sortable.js +++ b/tests/sortable.js @@ -122,5 +122,17 @@ test("defaults", function() { }); +test("#3019: Stop fires too early", function() { + + var helper = null; + el = $("#sortable").sortable({ stop: function(e, ui) { + helper = ui.helper; + }}); + + sort($("li", el)[0], 0, 40, 2, 'Dragging the sortable'); + equals(helper, null, "helper should be false"); + +}); + })(jQuery); diff --git a/ui/ui.sortable.js b/ui/ui.sortable.js index c3ce88ef2..2426c81f4 100644 --- a/ui/ui.sortable.js +++ b/ui/ui.sortable.js @@ -519,11 +519,9 @@ $.widget("ui.sortable", $.extend($.ui.mouse, { left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) }, parseInt(this.options.revert, 10) || 500, function() { - self.propagate("stop", e, null, noPropagation); self.clear(e); }); } else { - this.propagate("stop", e, null, noPropagation); this.clear(e, noPropagation); } @@ -554,10 +552,15 @@ $.widget("ui.sortable", $.extend($.ui.mouse, { } this.dragging = false; - if(this.cancelHelperRemoval) return false; + if(this.cancelHelperRemoval) { + this.propagate("stop", e, null, noPropagation); + return false; + } + $(this.currentItem).css('visibility', ''); if(this.placeholder) this.placeholder.remove(); - this.helper.remove(); + this.helper.remove(); this.helper = null; + this.propagate("stop", e, null, noPropagation); return true; -- 2.39.5