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 #myresults
div.
Quando clico nesse elemento li analisado, desejo definir o valor de li para inserir e ocultar #myresults
div
$("#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()
?
blur
realmente 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 log
ou alert
$(this).html()
para ter certeza?
blur()
e nos click()
manipuladores, não há ações após o blur()
término