Como vincular o preenchimento automático da UI do jQuery usando .on ()?
Esta pergunta foi respondida para o método live (), mas o método live () foi preterido a partir do jQuery 1.7 e substituído pelo método .on () e esta resposta não funciona para on ().
Aqui é onde foi respondido antes:Bind A interface do usuário do jQuery é preenchida automaticamente usando .live ()
Alguém sabe como fazer omesma cois com on ()?
Se você alterar a sintaxe para algo como
$(document).on("keydown.autocomplete",[selector],function(){...});
a partir d
$([selector]).live("keydown.autocomplete",function(){...});
Funciona, mas interage com os eventos internos de preenchimento automático de uma maneira estranha. Com live (), se você usar o select event e acesse o event.target, fornece o ID do elemento de entrada. Se você usar on (), ele fornecerá o ID do menu suspenso "ui-active-menuitem". Algo assim
$( ".selector" ).autocomplete({
select: function(event, ui) {
console.log(event.target.id);
}
});
Mas - se você usar o evento "aberto", ele fornecerá o ID que estou procurando - mas não no momento certo (preciso dele depois que ele for selecionado). Neste ponto, estou usando uma solução alternativa para obter o ID do elemento de entrada na função de evento aberto, armazenando-o em um campo oculto e acessando-o no método de seleção onde preciso.