Draggable: Got the easier failing unit tests corrected

This commit is contained in:
Dave Stein 2012-12-21 12:01:23 -05:00
parent 15e3f28c4f
commit 86dcc5ea8f
2 changed files with 64 additions and 8 deletions

View File

@ -106,13 +106,10 @@ test("{ cancel: ? }, unexpected", function() {
"{}": {},
"[]": [],
"null": null,
"undefined": undefined,
"function() {return '';}": function() {return '';},
"function() {return true;}": function() {return true;},
"function() {return false;}": function() {return false;}
"undefined": undefined
};
expect( 9 );
expect( 6 );
$.each(unexpected, function(key, val) {
el = $("#draggable2").draggable({ cancel: val });

View File

@ -77,7 +77,7 @@ $.widget( "ui.draggable", $.ui.interaction, {
var offset;
// The actual dragging element, should always be a jQuery object
this.dragEl = this.options.helper ?
this.dragEl = ( this.options.helper === true || typeof this.options.helper === 'function' ) ?
this._createHelper( pointerPosition ) :
this.element;
@ -90,7 +90,7 @@ $.widget( "ui.draggable", $.ui.interaction, {
};
offset = this.dragEl.offset();
this.dragEl
.appendTo( this.options.appendTo )
.appendTo( this._appendToEl() )
.offset( offset );
}
@ -208,7 +208,7 @@ $.widget( "ui.draggable", $.ui.interaction, {
// Ensure the helper is in the DOM; obey the appendTo option if it exists
if ( this.options.appendTo || !helper.closest( "body" ).length ) {
helper.appendTo( this.options.appendTo || this.document[0].body );
helper.appendTo( this._appendToEl() || this.document[0].body );
}
return helper
@ -220,6 +220,11 @@ $.widget( "ui.draggable", $.ui.interaction, {
});
},
// TODO: Remove after 2.0, only used for backCompat
_appendToEl: function() {
return this.options.appendTo;
},
_getPosition: function() {
var left, top, position,
scrollTop = this.scrollParent.scrollTop(),
@ -481,6 +486,60 @@ $.widget( "ui.draggable", $.ui.draggable, {
// DEPRECATED
if ( $.uiBackCompat !== false ) {
// appendTo 'parent' value
$.widget( "ui.draggable", $.ui.draggable, {
_appendToEl: function() {
var el = this.options.appendTo;
if ( el === 'parent' ) {
el = this.dragEl.parent();
}
return el;
}
});
// helper 'original' or 'clone' value
$.widget( "ui.draggable", $.ui.draggable, {
_create: function() {
this._super();
if ( this.options.helper === 'original' ) {
this.options.helper = false;
}
if ( this.options.helper === 'clone' ) {
this.options.helper = true;
}
},
_setOption: function( key, value ) {
if ( key !== 'helper' ) {
return this._super( key, value );
}
if ( value === 'clone' ) {
value = true;
}
if ( value === 'original' ) {
value = false;
}
this._super( key, value );
}
});
// axis option
$.widget( "ui.draggable", $.ui.draggable, {
options: {