buenas!
deberías crear un listener
global. es decir, registrar el evento click en el documento. en el handler (la función) debes determinar a qué se le hizo click. si fue a la lista desplegable, entonces muestra u oculta según el estado actual del desplegable... o más bien dependerá exactamente de los efectos que quieras dar. si al elemento que se le hizo click fue otro que no sea la lista, entonces ocultas. esto lo logras mediante la propiedad
target del objeto
Event. este objeto lo recibes automáticamente como parámetro en la función registrada al evento.
Código:
document.body.addEventListener('click', function(evt){
alert(evt.target.nodeName);
});