Foros del Web » Programando para Internet » Javascript »

mostrar y ocultar campos DIV

Estas en el tema de mostrar y ocultar campos DIV en el foro de Javascript en Foros del Web. Hola a todos, He encontrado por ahí esta función que me muestra/oculta un campo al seleccionarlo: Código: <script language="javascript"> function MuestraTabla (objTabla) { if (objTabla.style.display ...
  #1 (permalink)  
Antiguo 13/02/2008, 09:29
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 6 meses
Puntos: 3
mostrar y ocultar campos DIV

Hola a todos,

He encontrado por ahí esta función que me muestra/oculta un campo al seleccionarlo:

Código:
<script language="javascript">
            function MuestraTabla (objTabla) {
			
			if (objTabla.style.display == '') {
					objTabla.style.display = 'none';
		        } else {
					objTabla.style.display = '';
		        }
            }
</script>

Esta funcion está en cada DIV con el evento onClick y cada DIV lo tengo con style="display: none;" y como ID del formato "I + un numero" (I1, I2, I3... hasta el I22), lo que hace esta funcion es que me muestre/oculte su correspondiente DIV utilizando los IDs al hacer click sobre ellos.

Lo que quiero agregarle es algo que haga lo siguiente: cuando tengo uno de los DIV mostrados y pinche en otro DIV, es decir, llame a la funcion MuestraTabla de otro DIV, me oculte el que esté "abierto".

Se me había ocurrido hacer un bucle FOR para que haga un "barrido" de todos los IDs menos el que acabo de pinchar para que los oculte, y he hecho lo siguiente:

Código:
<script language="javascript">
            function MuestraTabla (objTabla) {
			
			if (objTabla.style.display == '') {
					objTabla.style.display = 'none';
		        } else {
					objTabla.style.display = '';
		        }
			
			for(x=0; x<22; x++)
			{
				idTodos = 'I' + x;
				if(objTabla != idTodos)
				{
		                 idTodos.style.display = 'none';
				}
			}

            }
</script>
Esto me da error en la línea idTodos.style.display = 'none'; y aquí es donde se me acaban los conocimientos de JavaScript y solicito su ayuda, porque no me se manejar muy bien con los objetos del navegador.

Gracias de antemano por la ayuda prestada.

Saludos

Carlos
  #2 (permalink)  
Antiguo 13/02/2008, 09:37
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: mostrar y ocultar campos DIV

Talvez tendria que ser asi..

Código:
<script language="javascript">
            function MuestraTabla (objTabla) {
			
			if (objTabla.style.display == '') {
					objTabla.style.display = 'none';
		        } else {
					objTabla.style.display = '';
		        }
			
			for(x=0; x<22; x++)
			{
				idTodos = 'I' + x;
				//if(objTabla != idTodos)
//estas comparando el objeto con la cadena tendrias que comparar el id del objeto con la cadena que construyes
                               if(objTabla.id != idTodos)
				{
		                 //idTodos.style.display = 'none';
//Tienes que crear el objeto para añadir la propiedad style.display
document.getElementById(idTodos).style.display = 'none';
				}
			}

            }
</script>
Saludos..
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
  #3 (permalink)  
Antiguo 13/02/2008, 09:39
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 3 meses
Puntos: 772
Re: mostrar y ocultar campos DIV

Hola chiquirf

A ver si este mensaje te sirve de ayuda:

http://www.forosdelweb.com/f13/texto...gables-486123/

Saludos,
  #4 (permalink)  
Antiguo 13/02/2008, 17:10
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 6 meses
Puntos: 3
Re: mostrar y ocultar campos DIV

de PM...

Justo lo que necesitaba...

Esto me pasa por no buscar antes.

Muchas gracias.

Saludos

Carlos
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 07:54.