Foros del Web » Programando para Internet » Javascript »

evitar duplicar funciones

Estas en el tema de evitar duplicar funciones en el foro de Javascript en Foros del Web. Estas dos funciones me muestran y ocultan un contenedor, pero...¿si tengo 20 capas debo de crearme 40 funciones? seguro que no, pero ni idea de ...
  #1 (permalink)  
Antiguo 30/05/2008, 06:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 45
Antigüedad: 16 años, 4 meses
Puntos: 0
evitar duplicar funciones

Estas dos funciones me muestran y ocultan un contenedor, pero...¿si tengo 20 capas debo de crearme 40 funciones? seguro que no, pero ni idea de cómo hacerlo...

function mostrardiv() {

div = document.getElementById('capa01');

div.style.display = '';

}

function cerrar() {

div = document.getElementById('capa01');

div.style.display='none';

}
  #2 (permalink)  
Antiguo 30/05/2008, 08:06
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: evitar duplicar funciones

Las funciones aceptan parámetros...

Código:
function mostrarCapa(nombre) {
    var div = document.getElementById(nombre);
// etc
}
  #3 (permalink)  
Antiguo 30/05/2008, 08:12
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: evitar duplicar funciones

Hola chicotoy

Además de enviar el id de la capa, como te dice venkman, puedes enviar otro parámetro para mostrar/ocultar con una sola función:

Código:
function mostrarCapa(nombre,valor) { // valor puede ser true o false
    var div = document.getElementById(nombre);
   div.style.display = (valor) ? 'block' : 'none';
}
Saludos,
  #4 (permalink)  
Antiguo 02/06/2008, 12:20
 
Fecha de Ingreso: diciembre-2007
Mensajes: 45
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: evitar duplicar funciones

Gracias a los dos. Me pongo con ello a ver si me sale.
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:01.