2009-12-17 10 views
5

Me encuentro a menudo en la situación de que abro un elemento en una página web, p. un menú desplegable - que quiero cerrar si el usuario hace clic en en cualquier parte de la página excepto en el elemento.Mejor práctica de prototipo para "hacer clic en cualquier lugar para cerrar"?

Para simplificar, generalmente he escrito el código yo mismo en lugar de utilizar una clase de menú desplegable.

Sin embargo, nunca he logrado construir una implementación que fuera completamente satisfactoria: el manejo de eventos y el burbujeo funcionarían de manera diferente en diferentes navegadores, habría la necesidad de soluciones desagradables, en algunas situaciones presionando el botón desplegable comenzaría a cerrarlo en el mismo momento, y así sucesivamente.

¿Existe una mejor práctica basada en el prototipo para hacer esto? Algo que funciona en todos los navegadores: IE6 es una ventaja pero no un requisito.

Sólo esto:

  • clic en un botón - un elemento abre (por ejemplo, un menú desplegable con posición absoluta).
  • haga clic en el elemento - el elemento permanece abierto.
  • haga clic en el botón que abrió el elemento t - el elemento permanece abierto.
  • haga clic en cualquier otro lugar en la página - el elemento se cierra.

Necesito ayuda con la parte de manejo de eventos solamente, la visualización del menú es totalmente secundaria.

+0

¿Tiene algún ejemplo de sus requisitos en práctica en otros sitios? – Skilldrick

+0

Bueno, en esencia, lo que estoy buscando es el comportamiento de un menú normal de '