diff options
-rw-r--r-- | tests/sortable.js | 12 | ||||
-rw-r--r-- | 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; |