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 #myresults
div.
Lorsque je clique sur cet élément li analysé, je veux définir la valeur de li à l'entrée et masquer #myresults
div
$("#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()
?
blur
est 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 log
ou alert
$(this).html()
pour vous en assurer?
blur()
et les click()
gestionnaires, il n'y a pas d'action après la blur()
fin