mirror of
https://github.com/jquery/jquery-ui.git
synced 2025-01-07 20:34:24 +00:00
Autocomplete: Append menu to body and reset z-index on every suggestion.
Fixes #5271.
This commit is contained in:
parent
8cd7129f0c
commit
5f213572d6
@ -5,7 +5,11 @@
|
||||
|
||||
(function($) {
|
||||
|
||||
module("autocomplete: core");
|
||||
module("autocomplete: core", {
|
||||
teardown: function() {
|
||||
$( ":ui-autocomplete" ).autocomplete( "destroy" );
|
||||
}
|
||||
});
|
||||
|
||||
test("close-on-blur is properly delayed", function() {
|
||||
var ac = $("#autocomplete").autocomplete({
|
||||
|
@ -3,7 +3,11 @@
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
module("autocomplete: events");
|
||||
module("autocomplete: events", {
|
||||
teardown: function() {
|
||||
$( ":ui-autocomplete" ).autocomplete( "destroy" );
|
||||
}
|
||||
});
|
||||
|
||||
var data = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "pearl"];
|
||||
|
||||
|
@ -4,7 +4,11 @@
|
||||
(function($) {
|
||||
|
||||
|
||||
module("autocomplete: methods");
|
||||
module("autocomplete: methods", {
|
||||
teardown: function() {
|
||||
$( ":ui-autocomplete" ).autocomplete( "destroy" );
|
||||
}
|
||||
});
|
||||
|
||||
test("destroy", function() {
|
||||
var beforeHtml = $("#autocomplete").parent().html();
|
||||
|
@ -3,7 +3,11 @@
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
module("autocomplete: options");
|
||||
module("autocomplete: options", {
|
||||
teardown: function() {
|
||||
$( ":ui-autocomplete" ).autocomplete( "destroy" );
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/* disabled until autocomplete actually has built-in support for caching
|
||||
|
@ -3,7 +3,11 @@
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
module("autocomplete: tickets");
|
||||
module("autocomplete: tickets", {
|
||||
teardown: function() {
|
||||
$( ":ui-autocomplete" ).autocomplete( "destroy" );
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
11
ui/jquery.ui.autocomplete.js
vendored
11
ui/jquery.ui.autocomplete.js
vendored
@ -20,7 +20,8 @@ $.widget( "ui.autocomplete", {
|
||||
delay: 300
|
||||
},
|
||||
_create: function() {
|
||||
var self = this;
|
||||
var self = this,
|
||||
doc = this.element[ 0 ].ownerDocument;
|
||||
this.element
|
||||
.addClass( "ui-autocomplete-input" )
|
||||
.attr( "autocomplete", "off" )
|
||||
@ -95,7 +96,7 @@ $.widget( "ui.autocomplete", {
|
||||
};
|
||||
this.menu = $( "<ul></ul>" )
|
||||
.addClass( "ui-autocomplete" )
|
||||
.appendTo( this.element.parent() )
|
||||
.appendTo( "body", doc )
|
||||
.menu({
|
||||
focus: function( event, ui ) {
|
||||
var item = ui.item.data( "item.autocomplete" );
|
||||
@ -112,7 +113,7 @@ $.widget( "ui.autocomplete", {
|
||||
self.close( event );
|
||||
self.previous = self.element.val();
|
||||
// only trigger when focus was lost (click on menu)
|
||||
if ( self.element[0] != document.activeElement ) {
|
||||
if ( self.element[0] !== doc.activeElement ) {
|
||||
self.element.focus();
|
||||
}
|
||||
}
|
||||
@ -232,7 +233,9 @@ $.widget( "ui.autocomplete", {
|
||||
|
||||
_suggest: function( items ) {
|
||||
var self = this,
|
||||
ul = this.menu.element.empty();
|
||||
ul = this.menu.element
|
||||
.empty()
|
||||
.zIndex( this.element.zIndex() + 1 );
|
||||
this._renderMenu( ul, items );
|
||||
// TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate
|
||||
this.menu.deactivate();
|
||||
|
Loading…
Reference in New Issue
Block a user