11548 sujets

JavaScript, DOM et API Web HTML5

Pages :
(reprise du message précédent)

Bon alors après avoir lu ton sujet (tout à l'heure je n'avais lu que ton dernier message Smiley langue ) il me semble que tu te simplifierais la vie en n'utilisant pas des éléments DIV / UL / LI mais des éléments SELECT et OPTION. Smiley murf
J'ai peur que ça ne rende pas du tout pareil. Il me semble qu'un select est beaucoup moins maniable qu'une div (sans parler du fait qu'à ma connaissance les options n'acceptent pas l'événement onmouseover sous IE6, ce qui aurait simplifié les choses).

En tout cas tous les exemples d'aide à la saisie que j'ai pu trouver sur le net étaient conçus à base de listes dans des divs.
Et éventuellement, en faisant un truc relativement sale comme mettre un onclick sur le body (qui masquerait la div), ça pourrait marcher ? Smiley lol
Pour ce qui est du SELECT c'est l'élément utilisé dans le premier résultat d'une recherche sur Ajax autocompletion. Smiley smile

Sinon en relisant plus attentivement (il commence à être long ton sujet !) je ne comprends pas pourquoi tu n'arriverais pas à t'en sortir avec onmouseover, onmouseout et onclick. Il devrait suffire de rajouter this dans les paramètres transmis non ?
Modifié par Heyoan (05 Jun 2009 - 15:26)
a écrit :
Sinon en relisant plus attentivement (il commence à être long ton sujet !) je ne comprends pas pourquoi tu n'arriverais pas à t'en sortir avec onmouseover, onmouseout et onclick. Il devrait suffire de rajouter this dans les paramètres transmis non ?

A quel niveau ? Sur la div ?
L'effet de survol (onmouseover, qui fait aussi office de onmouseout sur l'élément précédemment survolé en l'occurrence) et le clic sur la div fonctionnent maintenant sans problème grâce aux pistes de marcv.
C'est maintenant le masquage de la liste qui pèche (dans le cas où je clique autre part que sur la div en elle-même).
J'ai essayé le onmouseout, le soucis c'est que le curseur n'est pas forcement sur la div quand elle apparait, et donc cette dernière disparait à l'approche du curseur (et même s'il est dessus au départ, je crois que la div disparait aussi au passage sur les li bien que ceux ci soient dans la div Smiley biggol ).

Edit : en cliquant sur ton lien, puis en cliquant sur le premier lien de la recherche (développez.com), c'est une liste UL qui est utilisée. Smiley ohwell
Modifié par SynRJ (05 Jun 2009 - 15:48)
SynRJ a écrit :
C'est maintenant le masquage de la liste qui pèche (dans le cas où je clique autre part que sur la div en elle-même).
J'ai essayé le onmouseout, le soucis c'est que le curseur n'est pas forcement sur la div quand elle apparait, et donc cette dernière disparait à l'approche du curseur (et même s'il est dessus au départ, je crois que la div disparait aussi au passage sur les li bien que ceux ci soient dans la div Smiley biggol ).
Eh bien je ne me suis jamais amusé avec ça mais ce qui me vient à l'esprit ce serait de gérer ça avec 2 variables globales : par exemple div_on qui correspondrait à l'état du DIV affiché et div_over qui correspondrait à l'état du DIV survolé. Ensuite chaque évènement modifierait ces variables : lorsque tu affiches la DIV div_on passe à true; sur les évènements onmouseover renvoyés par la DIV ou par un LI div_on et div_over passent à true; sur l'évènement onmouseout renvoyé par la DIV div_on passe à false si et seulement si div_over est true; etc.
Bon, si ça se trouve je dis n'importe quoi ! Smiley biggol

Pour ce qui est du onclick sur le body... ben je dirais que c'est à essayer... en ajoutant un onfocus sur tous les éléments qui peuvent l'avoir... (mais bon... ça a quand même l'air un brin compliqué !)

SynRJ a écrit :
Edit : en cliquant sur ton lien, puis en cliquant sur le premier lien de la recherche (développez.com), c'est une liste UL qui est utilisée. Smiley ohwell
Ah oui oups ! J'ai vu <option> en début de code et j'ai pas tilté que ça correspondait à un fichier XML !
Wouaaah pokwa pas. J'essayerai ça Lundi, là j'ai plus trop les idées claires, du coup je risque de faire n'importe quoi. Merci pour la piste. Smiley smile
Bon, je n'ai pas réussi à faire disparaître cette fichue div Smiley smile

Pas grave, elle sera masquée lors de la prise de focus d'un autre champ, ou lors d'un choix dans la liste de possibilités.

Merci pour votre aide !
Pages :