Autor Tema: [Duda] ¿Porqué necesito hacer doble clic?  (Leído 693 veces)

Desconectado ferdi342

  • PHPero Experto
  • *****
  • Mensajes: 734
  • Karma: 8
  • Sexo: Masculino
  • Gúgol
    • Ver Perfil
    • Google - La solución a todo
[Duda] ¿Porqué necesito hacer doble clic?
« 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:
Código: [Seleccionar]
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.
A veces hay que dejar terminar cosas buenas para que empiecen mejores, How I Met Your Mother

Comunidad PHPeros

[Duda] ¿Porqué necesito hacer doble clic?
« en: 29 de Agosto de 2012, 00:29:47 am »

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Duda] ¿Porqué necesito hacer doble clic?
« Respuesta #1 en: 30 de Agosto de 2012, 02:53:21 am »
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') {

Desconectado ferdi342

  • PHPero Experto
  • *****
  • Mensajes: 734
  • Karma: 8
  • Sexo: Masculino
  • Gúgol
    • Ver Perfil
    • Google - La solución a todo
Re:[Duda] ¿Porqué necesito hacer doble clic?
« Respuesta #2 en: 30 de Agosto de 2012, 12:57:59 pm »
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:
Código: [Seleccionar]
#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.
« Última modificación: 30 de Agosto de 2012, 13:03:18 pm por ferdi342 »
A veces hay que dejar terminar cosas buenas para que empiecen mejores, How I Met Your Mother