Eu tenho um campo de entrada, onde tento fazer sugestões de preenchimento automático. Código parece
<input type="text" id="myinput">
<div id="myresults"></div>
No blur()evento de entrada, quero ocultar a div dos resultados:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
Quando escrevo algo em minha entrada, envio solicitação para o servidor e obtenho resposta json, analise-a na estrutura ul-> li e coloque essa ul na minha #myresultsdiv.
Quando clico nesse elemento li analisado, desejo definir o valor de li para inserir e ocultar #myresultsdiv
$("#myresults ul li").live('click',function(){
$("#myinput").val($(this).html());
$("#myresults").hide();
});
Tudo está indo bem, mas quando clico no meu blur()evento li é acionado antes click()e o valor da entrada não recebe o html do li.
Como posso configurar o click()evento antes blur()?
blurrealmente estiver disparando após você clicar em um li, provavelmente não precisará executar $("#myresults").hide()no manipulador de cliques. O que parece estar acontecendo é que $(this).html()está retornando uma string vazia. Você poderia logou alert $(this).html()para ter certeza?
blur()e nos click()manipuladores, não há ações após o blur()término