11548 sujets

JavaScript, DOM et API Web HTML5

Salut,

Je fais un petit outeil d'autocompletion et c'est très amusant à faire jusqu'à ce que ça deviennent vraiment tordu!
Voici donc 2 version illustrant mon problème :
http://bb.public.free.fr/css/suggest/suggest.html
http://bb.public.free.fr/css/suggest/suggest2.html
Vous pouvez voir sur le premier lien que lorsqu'on clique sur une option qui apparaît la valeur s'inscrit dans le champs de saisie. Seulement je souhaite que lorsqu'on clique en dehors de la zone de saisie la liste disparaisse.
Dans le second exemple j'ai logiquement, et naïvement, pensé au onblur. Seulement voilà lorsqu'on clique sur une option de la liste rien ne se passe puisque le onblur, faisant disparaître la liste, intervient avant le onclick de mon lien.

Voyez-vous comment je pourrais me sortir de cette situation?

Merci par avance.
Modifié par bbp (07 Nov 2005 - 21:32)
Bonjour,
Je ne suis pas sûr d'avoir bien compris le problème.

Mais peut-être peux-tu essayer un temporisateur setTimeout sur le onblur de la zone de texte, et si, avant le temps imparti par le temporisateur, un évènement onfocus sur la liste survient, annuler le timeout ?
Je réponds avant d'avoir essayé. C'est pas bête, en plus je viens justement de tomber sur un setTimeOut de 10ms dans le script de google suggest.
Merci pour ta réponse, c'est la bonne. je cherche juste le bon milieu maintenant.
Bon reflexe le setTimeOut, je n'y aurais jamais pensé!
Administrateur
bonjour,

il y a un souci avec les accents: chlo? pour chloé par exemple. J'ai bien compris que c'était un test mais mieux vaut rajouter quelque chose avant <html> après cet exercice avant d'aller plus loin si jamais ... Smiley cligne
Modifié par Felipe (07 Nov 2005 - 21:43)
Merci, il y a encore tellement de problèmes. Notament la fameuse compatibilité IE/FF qui m'empêche d'avancer comme je le souhaiterais. Je fournirai d'ailleurs demain que ce strict minimum.
Le problème des accents a été résolu dans la journée du coté script serveur.
Modifié par bbp (07 Nov 2005 - 21:57)