aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Sherov <mike.sherov@gmail.com>2014-08-25 10:28:39 -0400
committerMike Sherov <mike.sherov@gmail.com>2014-08-26 09:52:00 -0400
commit52a1de5caadd9dd0665d4bf092f6061d9d3a3a8e (patch)
tree8a4f7928a5f3a814892bd4780c873bcdb742b1bc
parentaada9d5ae7bfac64ff013931e26a73fd0284c921 (diff)
downloadjquery-ui-52a1de5caadd9dd0665d4bf092f6061d9d3a3a8e.tar.gz
jquery-ui-52a1de5caadd9dd0665d4bf092f6061d9d3a3a8e.zip
Sortable: cancelHelperRemoval only considers helper, not placeholder
Refs #9675
-rw-r--r--tests/unit/draggable/draggable_options.js2
-rw-r--r--ui/sortable.js22
2 files changed, 7 insertions, 17 deletions
diff --git a/tests/unit/draggable/draggable_options.js b/tests/unit/draggable/draggable_options.js
index 46b80608c..6c4a59396 100644
--- a/tests/unit/draggable/draggable_options.js
+++ b/tests/unit/draggable/draggable_options.js
@@ -305,7 +305,7 @@ test( "connectToSortable, dragging clone into sortable", function() {
sortable = $( "#sortable" ).sortable(),
offsetSortable = sortable.offset();
- $( sortable ).one( "sortbeforestop", function( event, ui ) {
+ $( sortable ).one( "sort", function( event, ui ) {
// http://bugs.jqueryui.com/ticket/8809
// Position issue when connected to sortable
deepEqual( ui.helper.offset(), offsetSortable, "sortable offset is correct" );
diff --git a/ui/sortable.js b/ui/sortable.js
index da4d13117..0207c8620 100644
--- a/ui/sortable.js
+++ b/ui/sortable.js
@@ -1253,18 +1253,6 @@ return $.widget("ui.sortable", $.ui.mouse, {
}
this.dragging = false;
- if(this.cancelHelperRemoval) {
- if(!noPropagation) {
- this._trigger("beforeStop", event, this._uiHash());
- for (i=0; i < delayedTriggers.length; i++) {
- delayedTriggers[i].call(this, event);
- } //Trigger all delayed events
- this._trigger("stop", event, this._uiHash());
- }
-
- this.fromOutside = false;
- return false;
- }
if(!noPropagation) {
this._trigger("beforeStop", event, this._uiHash());
@@ -1273,10 +1261,12 @@ return $.widget("ui.sortable", $.ui.mouse, {
//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
- if(this.helper[0] !== this.currentItem[0]) {
- this.helper.remove();
+ if ( !this.cancelHelperRemoval ) {
+ if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
+ this.helper.remove();
+ }
+ this.helper = null;
}
- this.helper = null;
if(!noPropagation) {
for (i=0; i < delayedTriggers.length; i++) {
@@ -1286,7 +1276,7 @@ return $.widget("ui.sortable", $.ui.mouse, {
}
this.fromOutside = false;
- return true;
+ return !this.cancelHelperRemoval;
},