Showing with 11 additions and 3 deletions.
  1. +1 −1 tests/unit/draggable/draggable_options.js
  2. +10 −2 ui/jquery.ui.draggable.js
@@ -45,7 +45,7 @@ test("{ appendTo: 'parent' }, default", function() {

TestHelpers.draggable.trackAppendedParent(el);

equal( el.draggable( "option", "appendTo" ), "parent" );
equal( el.draggable( "option", "appendTo" ), null );

TestHelpers.draggable.move(el, 1, 1);
equal( el.data("last_dragged_parent"), $("#qunit-fixture")[0] );
@@ -85,11 +85,13 @@ $.widget( "ui.draggable", $.ui.interaction, {

// Reset
this.dragDimensions = null;

// The actual dragging element, should always be a jQuery object
this.dragEl = ( this.options.helper === true || typeof this.options.helper === "function" ) ?
this._createHelper( pointerPosition ) :
this.element;



// _createHelper() ensures that helpers are in the correct position
// in the DOM, but we need to handle appendTo when there is no helper
@@ -564,10 +566,16 @@ if ( $.uiBackCompat !== false ) {
// appendTo 'parent' value
$.widget( "ui.draggable", $.ui.draggable, {

// Helper passed in since _createHelper calls this before dragEl is set
_appendToEl: function() {

var el = this.options.appendTo;


// This should only happen via _createHelper
if ( el === null ) {
return this.element.parent();
}

if ( el === "parent" ) {
el = this.dragEl.parent();
}