На этот вопрос ответили для метода live (), но метод live () устарел с jQuery 1.7 и заменен методом .on (), и этот ответ не работает для on ().
Вот что было дано раньше: Привязка автозаполнения jQuery UI с использованием .live ()
Кто-нибудь знает, как сделать то же самое с помощью on ()?
Если вы измените синтаксис на что-то вроде
$(document).on("keydown.autocomplete",[selector],function(){...});
из
$([selector]).live("keydown.autocomplete",function(){...});
Это работает, но странным образом взаимодействует с внутренними событиями автозаполнения,С помощью live (), если вы используете событие select и обращаетесь к event.target, он дает вам идентификатор элемента ввода.Если вы используете on (), вы получите идентификатор выпадающего меню "ui-active-menuitem".Примерно так:
$( ".selector" ).autocomplete({
select: function(event, ui) {
console.log(event.target.id);
}
});
Но - если вы используете событие «open», оно даст вам искомый идентификатор - только не в нужное время (он мне нужен после того, как он выбран).На этом этапе я использую обходной путь получения идентификатора элемента ввода в функции события open, сохранения его в скрытом поле и последующего доступа к нему в методе select, где он мне нужен.