Foros del Web » Programando para Internet » Javascript »

ayuda script activar ocultar

Estas en el tema de ayuda script activar ocultar en el foro de Javascript en Foros del Web. Hola a ver si alguien me puede echar la mano, llevo varios dias intentando varias cosas y no doy con el error: todo el script, ...
  #1 (permalink)  
Antiguo 09/11/2005, 16:40
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 19 años, 6 meses
Puntos: 3
ayuda script activar ocultar

Hola a ver si alguien me puede echar la mano, llevo varios dias intentando varias cosas y no doy con el error:

todo el script, html y css estan aqui:

http://www.wdinamo.com/pruebas/activaoculta.php

lo que necesito hacer es que al escojer un enlace me muestre el div correspondiente y el boton quede diferenciado de alguna manera...

hasta aqui lo consigo pero solo en iexplorer, en firefox sólo se ilumina mientes doy click pero no se queda asi.

otro problema que tengo es que cuando le doy click al que ya esta seleccionado se vuelve a ocultar.

aqui esta mi css muy básico
Código:
<style type="text/css">
body{
background-color:#FFF;
font:15px "Trebuchet MS", Helvetica, Arial, sans-serif;
}
#contenido{
clear:both;
}
#menu ul{
list-style-type:none;
margin:0; padding:0;
}
#menu ul li{
display:block;
float:left;
text-align:center;
}
#menu ul li a{
display:block;
width:150px;
height:25px;
background-color:#ddd;
margin:2px;
border:1px solid gray;
text-decoration:none;
}
#menu ul li a:active{
background-color:red;
}
#pad1,#pad2,#pad3{
width:500px;
height:300px;
border:1px solid gray;
display:none;
}

</style>

aqui el script
Código:
<script type="text/javascript">
//el pad que va por default
var defaultItems= "2"

//declaro el pad previo vacio al empezar la funcion
var prevpad=""


function activaDesactiva(N) {
//declaro que el pad X es igual que el pad seleccionado
var padX = document.getElementById('pad'+N);


//declaro que el pad seleccionado se muestre
padX.style.display ="block";



//decirle que los pads previos desaparescan

if (prevpad!="")
document.getElementById('pad'+prevpad).style.display="none"
prevpad=N

}//termina funcion activadesactiva


//lo que a continuación aparece hace que el pad default
//sea cargado al inicio del script (cuando carga la pagina)
function defaultitems(){
activaDesactiva(defaultItems);
}
if (window.addEventListener)
window.addEventListener("load", defaultitems, false)
else if (window.attachEvent)
window.attachEvent("onload", defaultitems)
else if (document.getElementById)
window.onload=defaultitems


</script>
y por aqui el contenido
Código:
<div id="menu">
<ul>
<li ><a href="#primera" id="menu1" onclick="activaDesactiva('1'); return false;">primer</a></li>
<li ><a href="#segunda" id="menu2" onclick="activaDesactiva('2'); return false;">segundo</a></li>
<li ><a href="#tercera" id="menu3" onclick="activaDesactiva('3'); return false;">tercero</a></li>
</ul>
</div>
<div id="contenido">
<div id="pad1" ><h1>1</h1>la primera capa que quiero ocultar</div>
<div id="pad2" ><h1>2</h1>la segunda capa que quiero ocultar</div>
<div id="pad3" ><h1>3</h1>la tercera capa que quiero ocultar</div>
</div>
de antemano gracias.
  #2 (permalink)  
Antiguo 09/11/2005, 18:25
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Hola fullmental!
Has los siguientes cambios:
Código HTML:
var prevpad="2";
//...
if (prevpad!=N)
Con esto ya no va a desaparecer la misma capa.
El otro problema, puede estar en los estilos que usas. Lamentablmente, de estilos sé muy poco
Hasnos saber, si corregiste ese problema
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 09/11/2005, 20:13
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 19 años, 6 meses
Puntos: 3
no me funciono !!

prevpad primero se declara vacio para que despues se modifiquey sea dinamico, asi prevpad=ultimo tab activado

si hago lo que me dices (ya lo intente) no me muestra el que quiero al inicio y me sigue desapareciendo el seleccionado.
  #4 (permalink)  
Antiguo 09/11/2005, 21:47
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 19 años, 6 meses
Puntos: 3
ok ya encontre solucion para lo anterior ...

el problema es que firefox no reconoce a:active, pero si reconoce a:focus,

entonces usando los dos aseguro que haga el efecto deseado.
  #5 (permalink)  
Antiguo 10/11/2005, 07:29
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Aqui esta la solucion.
Funciona en IE, FF, NN y Opera. Creo que es suficiente, no?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 14/11/2005, 17:06
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 19 años, 6 meses
Puntos: 3
perfecto!!!

ya encontre la falla.

GRACIAS!!!!
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 20:25.