From: Mike Sherov Date: Mon, 25 Aug 2014 12:21:15 +0000 (-0400) Subject: Draggable: Refresh sortables when draggable is added or removed X-Git-Tag: 1.11.2~26 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a611dd8971a5fada1ca9e661ad1944b401192f0d;p=jquery-ui.git Draggable: Refresh sortables when draggable is added or removed Since a sortable grows or shrinks when a draggable element is added to it, refresh the cached positions of sortables whenever an element is added or removed from the sortable. Refs #9675 --- diff --git a/ui/draggable.js b/ui/draggable.js index 7ad5d0c37..4e81ac3eb 100644 --- a/ui/draggable.js +++ b/ui/draggable.js @@ -834,6 +834,12 @@ $.ui.plugin.add("draggable", "connectToSortable", { // used solely in the revert option to handle "valid/invalid". draggable.dropped = sortable.element; + // Need to refreshPositions of all sortables in the case that + // adding to one sortable changes the location of the other sortables (#9675) + $.each( draggable.sortables, function() { + this.refreshPositions(); + }); + // hack so receive/update callbacks work (mostly) draggable.currentItem = draggable.element; sortable.fromOutside = draggable; @@ -882,6 +888,12 @@ $.ui.plugin.add("draggable", "connectToSortable", { // Inform draggable that the helper is no longer in a valid drop zone draggable.dropped = false; + + // Need to refreshPositions of all sortables just in case removing + // from one sortable changes the location of other sortables (#9675) + $.each( draggable.sortables, function() { + this.refreshPositions(); + }); } } });