Autocomplet: refactored handling of menu's selected event.

This commit is contained in:
Scott González 2010-07-20 12:10:58 -04:00
parent 2ed96cb0b8
commit e4273ff621

View File

@ -123,23 +123,20 @@ $.widget( "ui.autocomplete", {
}, },
selected: function( event, ui ) { selected: function( event, ui ) {
var item = ui.item.data( "item.autocomplete" ), var item = ui.item.data( "item.autocomplete" ),
setValue = false; previous = self.previous;
if ( false !== self._trigger( "select", event, { item: item } ) ) {
// #5639 - if we set the value before setting focus
// the cursor will move to the beginning of the field in IE
setValue = true;
}
self.close( event );
// only trigger when focus was lost (click on menu) // only trigger when focus was lost (click on menu)
var previous = self.previous;
if ( self.element[0] !== doc.activeElement ) { if ( self.element[0] !== doc.activeElement ) {
self.element.focus(); self.element.focus();
self.previous = previous; self.previous = previous;
} }
self.selectedItem = item;
if ( setValue ) { if ( false !== self._trigger( "select", event, { item: item } ) ) {
self.element.val( item.value ); self.element.val( item.value );
} }
self.close( event );
self.selectedItem = item;
}, },
blur: function( event, ui ) { blur: function( event, ui ) {
if ( self.menu.element.is(":visible") ) { if ( self.menu.element.is(":visible") ) {