Foros del Web » Programando para Internet » Javascript »

Ocultar con "style.display"

Estas en el tema de Ocultar con "style.display" en el foro de Javascript en Foros del Web. Tengo este script en el <head>: Código HTML: <script type= "text/javascript" > <!-- window.onload=mymenu; function mymenu(id) { var d = document.getElementById(id); for (var i = ...
  #1 (permalink)  
Antiguo 15/01/2007, 15:18
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Ocultar con "style.display"

Tengo este script en el <head>:
Código HTML:
<script type="text/javascript">
	<!--
	window.onload=mymenu;
	function mymenu(id) {
	var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
	if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
	if (d) {d.style.display='block';}
	
	}
	//-->
</script> 
Los elementos los tengo con un Id:
Código HTML:
<div id="smenu1"> 
y llamo a la funcion con:
Código HTML:
onclick="javascript:mymenu('smenu1');"
Ahora, esto hace que al cargarse la pagina todos los Ids "smenu" se oculten, y al llamar a uno, lo muestra,si llamo a otro, oculta al anterior y muestra al que llame.. pero quisiera que me ayuden a encontrar una forma de que al volver a dar click en uno actualmente mostrado haga que este se oculte!

Se puede?
  #2 (permalink)  
Antiguo 15/01/2007, 15:21
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: Ocultar con "style.display"

Cita:
que al volver a dar click en uno actualmente mostrado haga que este se oculte!
mmmmmmmmm

<div id="smenu1" onclick="this.style.display='none'">


Saludos
  #3 (permalink)  
Antiguo 15/01/2007, 15:47
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Ocultar con "style.display"

Seguro?

<div onclick="javascript:mymenu('smenu1');" onclick="this.style.display='none'">

???

Es que para mostrarlo necesita llamar a la funcion en javascript "mymenu"...
es por eso que pensaba que la solucion deberia ser en el script....

la cuestion es que lo uso asi:
Código:
<div onclick="javascript:mymenu('smenu1')>
<div id="smenu1">
contenido
</div>
</div>

<div onclick="javascript:mymenu('smenu2')>
<divid="smenu2">
contenido
</div>
</div
...
al hacer click en uno muestra ese y oculta el resto, pero quiero que al volver a cliquear en el que ya esta abierto, se oculte, quedando todos ocultos otra vez...
  #4 (permalink)  
Antiguo 16/01/2007, 10:24
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Ocultar con "style.display"

Nope, no me funciona nada :(
  #5 (permalink)  
Antiguo 24/01/2007, 09:28
Avatar de medinauta  
Fecha de Ingreso: diciembre-2002
Ubicación: Guayaquil
Mensajes: 159
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Ocultar con "style.display"

Al fin... Im feeling lucky!

La respuesta a mi menu estaba ya contestado por Caricatos aqui

Basicamente:
Cita:
Los estilos deberían ponerse inline:

<div id="capa1" style="display: block"><!-- o display: none -->
contenido de capa
</div>

El nombre de la función estaría mejor cambiar (como la original)... y su contenido...

function cambiar(capa) {
soy = document.getElementById(capa);
soy.style.display = (soy.style.display == "block") ? "none" : "block";
}

Y la llamada igual (cambiando mostrar por cambiar)
  #6 (permalink)  
Antiguo 24/01/2007, 09:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Ocultar con "style.display"

Hola:

Me alegra saber que te ha ayudado una participación mía (aunque no sea en este mismo mensaje)

Saludos :
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:08.