From 4f4715017d140daf44522962de0823c6de80628c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Zaefferer?= Date: Tue, 16 Feb 2010 16:20:05 +0000 Subject: [PATCH] Fix for #5188 along with a half-functional demo (buggy keyboard navigation) --- demos/autocomplete/categories.html | 69 ++++++++++++++++++++++++++++++ ui/jquery.ui.autocomplete.js | 11 +++-- 2 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 demos/autocomplete/categories.html diff --git a/demos/autocomplete/categories.html b/demos/autocomplete/categories.html new file mode 100644 index 00000000000..ff1c1510ed2 --- /dev/null +++ b/demos/autocomplete/categories.html @@ -0,0 +1,69 @@ + + + + jQuery UI Autocomplete Custom Data Demo + + + + + + + + + + + + +
+ + +
+ +
+

+ A categorized search result. Currently just static data, will match anything you type. +

+
+ + + diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index ff132cf8fd4..38b23fc9d7b 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -237,9 +237,7 @@ $.widget( "ui.autocomplete", { _suggest: function( items ) { var self = this, ul = this.menu.element.empty(); - $.each( items, function( index, item ) { - self._renderItem( ul, item ); - }); + 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(); this.menu.refresh(); @@ -248,6 +246,13 @@ $.widget( "ui.autocomplete", { ul.width( this.element.width() ); } }, + + _renderMenu: function( ul, items ) { + var self = this; + $.each( items, function( index, item ) { + self._renderItem( ul, item ); + }); + }, _renderItem: function( ul, item) { return $( "
  • " )