Autocomplete: Handle detached elements for appendTo after create.

This commit is contained in:
Scott González 2012-12-07 11:58:58 -05:00
parent 1481b08012
commit da17a232ca
2 changed files with 6 additions and 2 deletions

View File

@ -5,7 +5,7 @@ module( "autocomplete: options" );
var data = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl" ]; var data = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl" ];
test( "appendTo", function() { test( "appendTo", function() {
expect( 7 ); expect( 8 );
var detached = $( "<div>" ), var detached = $( "<div>" ),
element = $( "#autocomplete" ).autocomplete(); element = $( "#autocomplete" ).autocomplete();
equal( element.autocomplete( "widget" ).parent()[0], document.body, "defaults to body" ); equal( element.autocomplete( "widget" ).parent()[0], document.body, "defaults to body" );
@ -39,6 +39,10 @@ test( "appendTo", function() {
}); });
equal( element.autocomplete( "widget" ).parent()[0], detached[0], "detached DOM element" ); equal( element.autocomplete( "widget" ).parent()[0], detached[0], "detached DOM element" );
element.autocomplete( "destroy" ); element.autocomplete( "destroy" );
element.autocomplete().autocomplete( "option", "appendTo", detached );
equal( element.autocomplete( "widget" ).parent()[0], detached[0], "detached DOM element via option()" );
element.autocomplete( "destroy" );
}); });
function autoFocusTest( afValue, focusedLength ) { function autoFocusTest( afValue, focusedLength ) {

View File

@ -314,7 +314,7 @@ $.widget( "ui.autocomplete", {
this._initSource(); this._initSource();
} }
if ( key === "appendTo" ) { if ( key === "appendTo" ) {
this.menu.element.appendTo( this.document.find( value || "body" )[0] ); this.menu.element.appendTo( this._appendTo() );
} }
if ( key === "disabled" && value && this.xhr ) { if ( key === "disabled" && value && this.xhr ) {
this.xhr.abort(); this.xhr.abort();