Tengo un campo de entrada, donde trato de hacer una sugerencia de autocompletar. El código se parece a
<input type="text" id="myinput">
<div id="myresults"></div>
En el blur()
evento de entrada, quiero ocultar los resultados 'div:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
Cuando escribo algo en mi entrada, envío una solicitud al servidor y obtengo una respuesta json, la analizo en la estructura ul-> li y pongo esta ul en mi #myresults
div.
Cuando hago clic en este elemento li analizado, quiero establecer el valor de li para ingresar y ocultar #myresults
div
$("#myresults ul li").live('click',function(){
$("#myinput").val($(this).html());
$("#myresults").hide();
});
Todo va bien, pero cuando hago clic en mi blur()
evento li se activa antes click()
y el valor de entrada no obtiene el html de li.
¿Cómo puedo configurar un click()
evento antes blur()
?
blur
realmente se dispara después de hacer clic en un li
, entonces probablemente no necesite ejecutar $("#myresults").hide()
en el controlador de clics. Lo que parece que está sucediendo es que $(this).html()
está devolviendo una cadena vacía. ¿Podría usted log
o alert
$(this).html()
para asegurarse?
blur()
y click()
controladores, no hay acciones después de que blur()
finalice