Je me retrouve très souvent dans la situation où j'ouvre un élément dans une page web - par exemple un menu déroulant - que je veux fermer si l'utilisateur clique sur n'importe où dans la page, sauf l'élément lui-même .
Pour garder les choses simples, j'ai surtout écrit le code moi-même au lieu d'employer une classe de menu déroulant.
Cependant, je n'ai jamais réussi à construire une implémentation de ce système qui soit totalement satisfaisante : La gestion des événements et des bulles fonctionnait différemment selon les navigateurs, il fallait trouver des solutions de contournement, dans certaines situations, le fait de cliquer sur le bouton déroulant entraînait sa fermeture au même moment, etc.
Existe-t-il une meilleure pratique basée sur le Prototype, faisant autorité, pour faire cela ? Quelque chose qui fonctionne sur tous les navigateurs - IE6 étant un plus mais pas une exigence ?
Juste ça :
- cliquer sur un bouton - un élément s'ouvre (par exemple, un menu déroulant positionné de manière absolue).
- cliquez dans l'élément - l'élément reste ouvert.
- cliquez sur le bouton qui a ouvert l'élément t - l'élément reste ouvert.
- cliquez n'importe où ailleurs sur la page - l'élément se ferme.
J'ai besoin d'aide pour la partie traitement des événements uniquement, l'affichage du menu est totalement secondaire.