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 #myresultsdiv.
Cuando hago clic en este elemento li analizado, quiero establecer el valor de li para ingresar y ocultar #myresultsdiv
$("#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()?
blurrealmente 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 logo alert $(this).html()para asegurarse?
blur()y click()controladores, no hay acciones después de que blur()finalice