]> source.dussan.org Git - jquery-ui.git/commitdiff
Autocomplete: Fall back to .ui-front searching for empty jQuery objects
authorScott González <scott.gonzalez@gmail.com>
Mon, 20 Jan 2014 21:13:55 +0000 (16:13 -0500)
committerScott González <scott.gonzalez@gmail.com>
Mon, 20 Jan 2014 21:20:11 +0000 (16:20 -0500)
Fixes #9755

tests/unit/autocomplete/autocomplete_options.js
ui/jquery.ui.autocomplete.js

index e6f08785b6abe59c82d5f4973a09bcd983a26ab5..fee37aee4b56f21e3f433f6c4d3a98dac9a28ec5 100644 (file)
@@ -5,13 +5,18 @@ module( "autocomplete: options" );
 var data = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby",
        "python", "c", "scala", "groovy", "haskell", "perl" ];
 
-test( "appendTo", function() {
-       expect( 8 );
-       var detached = $( "<div>" ),
-               element = $( "#autocomplete" ).autocomplete();
+test( "appendTo: null", function() {
+       expect( 1 );
+       var element = $( "#autocomplete" ).autocomplete();
        equal( element.autocomplete( "widget" ).parent()[ 0 ], document.body,
                "defaults to body" );
        element.autocomplete( "destroy" );
+});
+
+test( "appendTo: explicit", function() {
+       expect( 6 );
+       var detached = $( "<div>" ),
+               element = $( "#autocomplete" );
 
        element.autocomplete({
                appendTo: ".autocomplete-wrap"
@@ -22,13 +27,6 @@ test( "appendTo", function() {
                "only appends to one element" );
        element.autocomplete( "destroy" );
 
-       $( "#autocomplete-wrap2" ).addClass( "ui-front" );
-       element.autocomplete();
-       equal( element.autocomplete( "widget" ).parent()[ 0 ],
-               $( "#autocomplete-wrap2" )[ 0 ], "null, inside .ui-front" );
-       element.autocomplete( "destroy" );
-       $( "#autocomlete-wrap2" ).removeClass( "ui-front" );
-
        element.autocomplete().autocomplete( "option", "appendTo", "#autocomplete-wrap1" );
        equal( element.autocomplete( "widget" ).parent()[ 0 ],
                $( "#autocomplete-wrap1" )[ 0 ], "modified after init" );
@@ -54,6 +52,23 @@ test( "appendTo", function() {
        element.autocomplete( "destroy" );
 });
 
+test( "appendTo: ui-front", function() {
+       expect( 2 );
+       var element = $( "#autocomplete" );
+
+       $( "#autocomplete-wrap2" ).addClass( "ui-front" );
+       element.autocomplete();
+       equal( element.autocomplete( "widget" ).parent()[ 0 ],
+               $( "#autocomplete-wrap2" )[ 0 ], "null, inside .ui-front" );
+       element.autocomplete( "destroy" );
+
+       element.autocomplete({
+               appendTo: $()
+       });
+       equal( element.autocomplete( "widget" ).parent()[ 0 ],
+               $( "#autocomplete-wrap2" )[ 0 ], "null, inside .ui-front" );
+});
+
 function autoFocusTest( afValue, focusedLength ) {
        var element = $( "#autocomplete" ).autocomplete({
                autoFocus: afValue,
index 77024afa07a80628ef9cadca552562481c82004d..ca2458ea65c5a69dff98201bb07134862a8a85b5 100644 (file)
@@ -339,7 +339,7 @@ $.widget( "ui.autocomplete", {
                                this.document.find( element ).eq( 0 );
                }
 
-               if ( !element ) {
+               if ( !element || !element[ 0 ] ) {
                        element = this.element.closest( ".ui-front" );
                }