Je suis donc en train d'écrire un champ de recherche pour mon site web. Au fur et à mesure que l'utilisateur tape, une boîte apparaît sous le champ avec des suggestions de recherche. Les suggestions sont navigables au clavier et cliquables.Ecriture d'un champ de recherche avec suggestions. Problème de mise au point Javascript
Cependant, j'ai des difficultés à faire disparaître les suggestions lorsque l'utilisateur clique ailleurs sur la page. J'ai ajouté un gestionnaire onBlur() au champ de recherche, mais lorsque l'utilisateur clique sur l'une des suggestions, le flou se produit avant le clic, faisant disparaître la boîte de suggestions et l'événement click se produit dans l'espace mort au lieu de suggestion.
Voici ce que mon HTML ressemble à:
<input type="text" id="search_field" onBlur="hideSuggestions()" />
<div id="suggestions_box">
<ul>
<li onClick="doSomething(1)">suggestion1</li>
<li onClick="doSomething(2)">suggestion2</li>
</ul>
</div>
La question est, comment puis-je cacher l'élément suggestions_box lorsque le focus quitte le champ de recherche, sauf lorsque le nouvel élément avec mise au point est les suggestions boîte?
Merci. Je pense que c'est la bonne solution en général, mais j'utilise jquery, qui ne définit pas correctement la propriété relatedTarget (elle est toujours indéfinie). Des idées de contournement? – Aaron
Je crois que jQuery remplit 'relatedTarget' en général. Cependant, je ne connais pas assez l'événement 'blur' et comment jQuery interprète le' toElement' dans IE. Cela peut être votre problème. –