I find myself very often in the situation that I open an element in a web page - e.g. a drop-down menu - that I want to close if the user clicks anywhere on the page except the element itself.
To keep things simple, I have mostly written the code myself instead of employing some drop-down menu class.
However, I have never managed to build an implementation of this that was completely satisfying: Event handling and bubbling would work differently in different browsers, there would be the need for nasty workarounds, in some situations clicking the drop-down button would start closing it in the same moment, and so on.
Is there a Prototype based, authoritative, best practice to do this? Something that works across browsers - IE6 being a plus but not a requirement?
Just this:
- click on a button - an element opens (e.g. an absolutely positioned drop-down menu).
- click within the element - the element stays open.
- click on the button that opened the element - the element stays open.
- click anywhere else on the page - the element closes.
I need help with the event handling part only, the displaying of the menu is totally secondary.