Comunidad PHPeros
Lenguajes => JavaScript => Mensaje iniciado por: ferdi342 en 29 de Agosto de 2012, 00:29:47 am
-
Hola,
estoy trabajando en algo y estoy tratando de que al hacer clic en un botón, una div se muestre. El código que he creado funciona a la perfección, exceptuando que para hacer la acción de mostrar el div oculto, debo hacer doble clic, una vez hecho este doble clic, funciona con un solo clic el cerrar i abrir de nuevo, es sólo la primer vez que para activar-lo digamos hay que hacer doble, ¿alguien sabe porqué?
Código:
function mostrar_box() {
if(document.getElementById('capa_interior').style.visibility == 'hidden') {
document.getElementById('capa_interior').style.visibility = 'visible';
document.getElementById('cuadrado').innerHTML = '<img src="images/illumina/desplegar_boton.png" width="11" height="11" />';
}
else {
document.getElementById('capa_interior').style.visibility = 'hidden';
document.getElementById('cuadrado').innerHTML = '<img src="images/illumina/desplegar_boton2.png" width="11" height="11" />';
}
}
Hay una segunda parte que es un innerHTML, pero no le hagáis caso funciona correctamente.
Gracias.
-
Porque al principio el parametro visibility no existe, está indefinido. Tienes dos opciones:
- añadir desde el CSS el "por defecto"
- o usar if(document.getElementById('capa_interior').style.visibility == 'hidden' || typeof document.getElementById('capa_interior').style.visibility == 'undefined') {
-
Porque al principio el parametro visibility no existe, está indefinido. Tienes dos opciones:
- añadir desde el CSS el "por defecto"
- o usar if(document.getElementById('capa_interior').style.visibility == 'hidden' || typeof document.getElementById('capa_interior').style.visibility == 'undefined') {
En el CSS he establecido que el parámetro visibility en capa_interior sea hidden, pero voy a probar esto que dices.
-
EDITO: He probado con lo segundo que me has dicho y sigue pasándome lo mismo.
Y para que veas el CSS de capa_interior:
#capa_interior {
position:absolute;
width:550px;
height:120px;
z-index:1;
left: 525px;
top: 63px;
visibility:hidden;
background:url(images/illumina/capa_interior_desplegar.png);
}
El parámetro visibility si está definido.
-
Gracias.