11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je souhaite effectuer un effet, souvent rencontré sur le net, qui peut se décomposer en deux étapes :
1 présenter une box de connexion suite au clic d'un champ connexion
2 masquer la box suite a un clic survenu en dehors de cette même box
Typiquement ce que l'on retrouve sur Twitter par exemple. http://twitter.com/

Pour cela j'utilise JQuery, l'étape 1 ne pose pas de problème
Dans une div en position relative je place une div en position absolute que je masque/dévoile très facilement via la librairie précitée.

Pour ce qui est de l'étape 2 ... je bloque :
J'ai dans un premier temps affecté une classe css à ma div connexion (celle masquée), que je nomme "not_hide" puis j'ai associé un évènement onclic à l'ensemble des éléments de ma page.

Je pensais naïvement tester si l'évènement provient :
- d'un élément de la classe "not_hide" (1) ou d'un de ces fils pour ne rien faire si la box est visible
- d'un autre élément pour masquer la box si celle-ci est visible

Cependant lorsque je clique sur la box j'observe des évènements onclic issus des parents (body...) donc impossible d'appliquer ma stratégie.

Des idées ?

En vous remerciant par avance
Merci à vous deux,

La fonction stopPropagation m'a amplement satisfait.

En vous souhaitant une agréable soirée