Skip to content

Commit 2ef1b16

Browse files
committed
Autocomplete: Fall back to .ui-front searching for empty jQuery objects
Fixes #9755
1 parent 0bb807b commit 2ef1b16

File tree

2 files changed

+27
-12
lines changed

2 files changed

+27
-12
lines changed

tests/unit/autocomplete/autocomplete_options.js

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@ module( "autocomplete: options" );
55
var data = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby",
66
"python", "c", "scala", "groovy", "haskell", "perl" ];
77

8-
test( "appendTo", function() {
9-
expect( 8 );
10-
var detached = $( "<div>" ),
11-
element = $( "#autocomplete" ).autocomplete();
8+
test( "appendTo: null", function() {
9+
expect( 1 );
10+
var element = $( "#autocomplete" ).autocomplete();
1211
equal( element.autocomplete( "widget" ).parent()[ 0 ], document.body,
1312
"defaults to body" );
1413
element.autocomplete( "destroy" );
14+
});
15+
16+
test( "appendTo: explicit", function() {
17+
expect( 6 );
18+
var detached = $( "<div>" ),
19+
element = $( "#autocomplete" );
1520

1621
element.autocomplete({
1722
appendTo: ".autocomplete-wrap"
@@ -22,13 +27,6 @@ test( "appendTo", function() {
2227
"only appends to one element" );
2328
element.autocomplete( "destroy" );
2429

25-
$( "#autocomplete-wrap2" ).addClass( "ui-front" );
26-
element.autocomplete();
27-
equal( element.autocomplete( "widget" ).parent()[ 0 ],
28-
$( "#autocomplete-wrap2" )[ 0 ], "null, inside .ui-front" );
29-
element.autocomplete( "destroy" );
30-
$( "#autocomlete-wrap2" ).removeClass( "ui-front" );
31-
3230
element.autocomplete().autocomplete( "option", "appendTo", "#autocomplete-wrap1" );
3331
equal( element.autocomplete( "widget" ).parent()[ 0 ],
3432
$( "#autocomplete-wrap1" )[ 0 ], "modified after init" );
@@ -54,6 +52,23 @@ test( "appendTo", function() {
5452
element.autocomplete( "destroy" );
5553
});
5654

55+
test( "appendTo: ui-front", function() {
56+
expect( 2 );
57+
var element = $( "#autocomplete" );
58+
59+
$( "#autocomplete-wrap2" ).addClass( "ui-front" );
60+
element.autocomplete();
61+
equal( element.autocomplete( "widget" ).parent()[ 0 ],
62+
$( "#autocomplete-wrap2" )[ 0 ], "null, inside .ui-front" );
63+
element.autocomplete( "destroy" );
64+
65+
element.autocomplete({
66+
appendTo: $()
67+
});
68+
equal( element.autocomplete( "widget" ).parent()[ 0 ],
69+
$( "#autocomplete-wrap2" )[ 0 ], "null, inside .ui-front" );
70+
});
71+
5772
function autoFocusTest( afValue, focusedLength ) {
5873
var element = $( "#autocomplete" ).autocomplete({
5974
autoFocus: afValue,

ui/jquery.ui.autocomplete.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ $.widget( "ui.autocomplete", {
339339
this.document.find( element ).eq( 0 );
340340
}
341341

342-
if ( !element ) {
342+
if ( !element || !element[ 0 ] ) {
343343
element = this.element.closest( ".ui-front" );
344344
}
345345

0 commit comments

Comments
 (0)