Мне кажется, у меня есть решение, которое работает - без нарушения существующего поведения - путем расширения $.ui.autocomplete
и переопределением метода _suggest
.
$.widget('ui.myAutocomplete', $.extend({}, $.ui.autocomplete.prototype, {
_suggest : function(items) {
// Call ui.autocomplete's parent method
$.ui.autocomplete.prototype._suggest.call(this, items);
// Find the first list item
var item = this.menu.element.children()[0];
// Make this item active.
// An event is expected so a fake one is passed as a parameter.
this.menu.activate(new jQuery.Event('null.event'), $(item));
}
}));
Теперь вы можете использовать новый подкласс $.ui.myAutocomplete
таким же образом, как $.ui.autocomplete
$(function() {
var source = [
'test 1'
,'test 2'
,'test 3'
];
$('#selector')
.myAutocomplete({
source : source
});
});