Foros del Web » Programando para Internet » Javascript »

Problema con capas

Estas en el tema de Problema con capas en el foro de Javascript en Foros del Web. Hola. Soy novato en Javascript (no he salido mucho de PhP y MySql, xD). Y se me ha planteado este problema: Código HTML: <html> <head> ...
  #1 (permalink)  
Antiguo 15/12/2008, 09:22
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 1
Sonrisa Problema con capas

Hola. Soy novato en Javascript (no he salido mucho de PhP y MySql, xD). Y se me ha planteado este problema:

Código HTML:
<html>
<head>
<script LANGUAGE="javascript">
function oculta(capa){
 document.getElementById(capa).style.visibility = "hidden";
}
function muestra(capa){
 document.getElementById(capa).style.visibility = "visible";
}
</script>
</head>
<body>

<a href="#" onclick="muestra('capa1')"> (Mostrar opciones avanzadas)</a>
<br>
<a href="#" onclick="oculta('capa1')"> (Ocultar opciones avanzadas)</a>

<div id="capa1" style='position:relative;'>
<table width='100%'>
<tr>
<td bgcolor='black' align='center'>HOLA</td>
</tr>
</table>
</div>
<script>oculta('capa1');</script>
</body>
</html> 
Explico brevemente: al hacer click en mostrar opciones avanzadas nos muestra la tabla (que hemos ocultado antes). Al hacer click en ocultar opciones avanzadas desaparece la tabla (en la capa "capa1").

Lo que quiero hacer es previsible: al hacer click en mostrar opciones avanzadas quitar ese mensaje y en su lugar poner "ocultar opciones avanzadas" (además de realizar su efecto correspondiente.)

Muchas gracias!

Fbae
  #2 (permalink)  
Antiguo 15/12/2008, 09:31
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con capas

mas practico seria asi:

Código HTML:
<html>
<head>
<script LANGUAGE="javascript">
function cambia(capa){
//supongo que le envias la capa por que habran muchas... sino seria en vano??
if(document.getElementById("estado").value==0){
document.getElementById("link").innerHTML="Mostrar Opciones Avanzadas";
document.getElementById(capa).style.visibility = "hidden";
document.getElementById("estado").value=1;
}else{
document.getElementById("link").innerHTML="Ocultar Opciones Avanzadas";
document.getElementById(capa).style.visibility = "visible";
document.getElementById("estado").value=1;
}
</script>
</head>
<body>
<input type="hidden" name="estado" id="estado" value="0" />
<a href="#" onclick="cambia('capa1')"><span id="link">Ocultar opciones avanzadas</span></a>
<br>
<div id="capa1" style='position:relative;'>
<table width='100%'>
<tr>
<td bgcolor='black' align='center'>HOLA</td>
</tr>
</table>
</div>
</body>
</html> 
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 15/12/2008, 10:00
 
Fecha de Ingreso: diciembre-2008
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Problema con capas

Cita:
Iniciado por masterojitos Ver Mensaje
mas practico seria asi:

Código HTML:
<html>
<head>
<script LANGUAGE="javascript">
function cambia(capa){
//supongo que le envias la capa por que habran muchas... sino seria en vano??
if(document.getElementById("estado").value==0){
document.getElementById("link").innerHTML="Mostrar Opciones Avanzadas";
document.getElementById(capa).style.visibility = "hidden";
document.getElementById("estado").value=1;
}else{
document.getElementById("link").innerHTML="Ocultar Opciones Avanzadas";
document.getElementById(capa).style.visibility = "visible";
document.getElementById("estado").value=1;
}
</script>
</head>
<body>
<input type="hidden" name="estado" id="estado" value="0" />
<a href="#" onclick="cambia('capa1')"><span id="link">Ocultar opciones avanzadas</span></a>
<br>
<div id="capa1" style='position:relative;'>
<table width='100%'>
<tr>
<td bgcolor='black' align='center'>HOLA</td>
</tr>
</table>
</div>
</body>
</html> 
Muchísimas gracias por tu respuesta; en realidad es mucho mejor así. He hecho unos cambios al código porque quería que al principio salga solo "Mostrar".
También ha habido un problema con el else, que al establecer la variable seguía el código pero lo he solucionado leyendo antes el campo hidden.
Código HTML:
<html>
<head>
<script LANGUAGE="javascript">
function cambia(capa){
var estado = document.getElementById("estado").value;
  if(estado==0){
   document.getElementById(capa).style.visibility = "visible";
   document.getElementById("link").innerHTML="Ocultar opciones avanzadas";  
   document.getElementById("estado").value=1;  
  }else{ 
   document.getElementById(capa).style.visibility = "hidden";
   document.getElementById("link").innerHTML="Mostrar opciones avanzadas";
   document.getElementById("estado").value=0;  
  }
}
</script>
</head>
<body>
<input type="hidden" name="estado" id="estado" value="0">
<a href="#" onclick="cambia('capa1')"><span id="link">Mostrar opciones avanzadas</span></a>
<br>
<div id="capa1" style='position:relative;'>
<table width='100%'>
<tr>
<td bgcolor='black' align='center'>HOLA</td>
</tr>
</table>
</div>
<script>document.getElementById('capa1').style.visibility = "hidden";</script>
</body>
</html> 
Por cierto, si hay más de una capa por ocultar

Muchas gracias un saludo!
  #4 (permalink)  
Antiguo 15/12/2008, 10:15
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con capas

de nada varon.... un gusto y cuando quieras....

Dios los Bendiga.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
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:51.