Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/09/2011, 06:17
Avatar de RafaRG
RafaRG
 
Fecha de Ingreso: julio-2011
Ubicación: Córdoba, España
Mensajes: 124
Antigüedad: 13 años, 9 meses
Puntos: 13
Pregunta menú deplegable con javascript

hola a todos. os comento: estoy haciendo una página con un enlace en la cabecera. al darle al enlace, se me despliega un menú con varios enlaces dentro. este es el código que he usado:
Código PHP:
<!--EL SCRIPT-->
<
script
function 
OTROID(enla etik) { 
  
obj document.getElementById(etik); 
    
obj.style.display = (obj.style.display == 'block') ? 'none' 'block'
  
enla.innerHTML = (enla.innerHTML == '<img src="PNG/engranaje.png" width=30 height=30 style="margin:4px;position:fixed;top:0px;right:0px;">') ? '<img src="PNG/engranaje.png" width=30 height=30 style="margin:4px;position:fixed;top:0px;right:0px;">' '<img src="PNG/engranaje.png" width=30 height=30 style="margin:4px;position:fixed;top:0px;right:0px;">'

</script>
<!--EL HTML-->
<a href="#" onclick="OTROID(this,'ID'); return false"><img src="PNG/engranaje.png" width=30 height=30 style="margin:4px;position:fixed;top:0px;right:0px;"></a>
    <div id="ID" class="menúengranaje" style="display:none">
        <ul id="enlacesmenúengranaje">
        <li><a href="#">Configuración</a>
        <li><a href="#">Cambiar tema</a>
        <li><a href="#">Ayuda</a>
        </ul>
    </div>
<!--EL CSS-->
<style type="text/css">
.menúengranaje {
    position:fixed; top:40px; right:0%;
    background-color:rgba(0,0,0,0.2);
    border-radius:5px;
    padding:4px;
    }
#fondomenúengranaje {
    background-color:rgba(0,0,0,0.5);
    padding:5px;
    border-radius:5px;
    }
#enlacesmenúengranaje {
    margin:0px;
    margin-left:-40px;
    list-style:none;
    }
#enlacesmenúengranaje li {
    margin:auto;
    padding:0px;
    }
#enlacesmenúengranaje a {
    display:block;
    border:5px solid white;
    padding:5px;
    font-family:segoe ui;
    font-size:13px;
    background-color:white;
    }
#enlacesmenúengranaje a:hover {
    border:5px solid white;
    background-color:blue;
    color:white;
    }
</style> 
como veis, hay varias partes: script, html y css. el código funciona perfectamente. pero para hacer que el menú se oculte, tengo que volver a darle al enlace que lo muestra. mi pregunta es, ¿se puede modificar el código de alguna manera de modo que el menú se oculte haciendo click fuera del menú?
si queréis un ejemplo, google lo tiene. en la cabecera, a la derecha, hay un botón de un engranaje, que al clicar muestra un menú y si haces click en cualquier parte del resto de la página, se oculta el menú. yo quiero implementar eso mismo.
un saludo