J'ai un champ de saisie dans lequel j'essaye de faire une suggestion de saisie semi-automatique. Le code ressemble à
<input type="text" id="myinput">
<div id="myresults"></div>
Lors de l' blur()événement d'entrée, je veux masquer le div des résultats:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
Lorsque j'écris quelque chose dans mon entrée, j'envoie une requête au serveur et j'obtiens une réponse json, je l'analyse dans la structure ul-> li et je mets cet ul dans mon #myresultsdiv.
Lorsque je clique sur cet élément li analysé, je veux définir la valeur de li à l'entrée et masquer #myresultsdiv
$("#myresults ul li").live('click',function(){
$("#myinput").val($(this).html());
$("#myresults").hide();
});
Tout va bien, mais lorsque je clique sur mon blur()événement li se déclenche avant click()et que la valeur d'entrée n'obtient pas le html de li.
Comment puis-je organiser un click()événement avant blur()?
blurest vraiment déclenché après avoir cliqué sur un li, vous n'avez probablement pas besoin d'exécuter $("#myresults").hide()dans le gestionnaire de clics. Il semble que ce soit en train de $(this).html()renvoyer une chaîne vide. Pourriez-vous logou alert $(this).html()pour vous en assurer?
blur()et les click()gestionnaires, il n'y a pas d'action après la blur()fin