aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/sortable.js12
-rw-r--r--ui/ui.sortable.js11
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;