2009-12-17 11 views
5

Mi trovo molto spesso nella situazione in cui apro un elemento in una pagina Web - ad es. un menu a discesa - che voglio chiudere se l'utente fa clic su in qualsiasi punto della pagina tranne l'elemento stesso.Prototipo delle best practice per "fare clic ovunque per chiudere"?

Per semplificare le cose, ho scritto il codice principalmente, invece di utilizzare una classe di menu a discesa.

Tuttavia, non sono mai riuscito a creare un'implementazione completamente soddisfacente: la gestione degli eventi e il bubbling avrebbero funzionato in modo diverso nei vari browser, ci sarebbe stata la necessità di brutte soluzioni alternative, in alcune situazioni facendo clic sul pulsante a discesa iniziare a chiuderlo nello stesso momento, e così via.

Esiste un prototipo basato, autorevole, la migliore pratica per fare questo? Qualcosa che funziona attraverso i browser - IE6 è un vantaggio ma non un requisito?

Solo questo:

  • clic su un pulsante - un elemento apre (per esempio un menu a tendina posizionato in modo assoluto).
  • fare clic all'interno dell'elemento - l'elemento rimane aperto.
  • fare clic sul pulsante che ha aperto l'elemen t - l'elemento rimane aperto.
  • fare clic in qualsiasi altro punto della pagina - l'elemento si chiude.

Ho bisogno di aiuto solo con la parte di gestione eventi, la visualizzazione del menu è totalmente secondaria.

+0

Avete qualche esempio delle vostre esigenze in pratica su altri siti? – Skilldrick

+0

Beh, in sostanza quello che sto cercando è il comportamento di un normale '