Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/09/2012, 17:09
Avatar de ClubIce
ClubIce
 
Fecha de Ingreso: diciembre-2008
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Que falla? Quiero tener un div al centro de la pantalla..

No entendi muy bien tu codigo debido a que esta un poco "sucio" (utiliza Highlight la proxima vez)

sin embargo, si entendi muy bien lo que quieres hacer: no es necesario que el elemento DOM tenga un id o un class para poderlo modificar, solo basta con un referencia directa, ejemplo:

Código HTML:
Ver original
  1. <div>Este es el div Padre
  2.   <div style="display:none">Este es el div oculto
  3.     <a onclick="muestra_oculta(this.parentNode)">Ocultar</a>
  4.   </div>
  5.   <a onclick="muestra_oculta(this.parentNode.firstNode)">Mostrar</a>
  6. </div>

Explicación:

1) encierro todo en un div padre para tener mejor control de sus hijos.
2) coloco el div que se va a esconder.
3) dentro de div que se va a esconder coloco el link que hace que se oculte de nuevo
4) el link que oculta el div, llama a la función muestra_oculta y le pasa el nodo padre (el div oculto) del elemento actual (el link que oculta), de tal forma que dentro de la función muestra_oculta recibiremos un elemento DOM en vez de un id o un class, por lo que nos ahorramos el identificarlo.
5) después del div oculto coloco el link que lo muestra
6) el link que muestra el div llama a la función muestra oculta y le pasa el primer nodo (el div escondido) del nodo padre (el div padre) del elemento actual (el link que muestra). igual que en el link que oculta, este pasa un elemento DOM en vez de un id o un class.

finalmente la función muestra_oculta recibiría directamente el elemento que va a mostrar o ocultar, por lo que no es necesario una identificación por id o class. debes tener en cuenta que el div oculto debe definirse inmediatamente después comenzar el div padre, por que estamos utilizando firstNode (primer Nodo), ya que cualquier otra cosa colocada antes del div podría arruinar el código. En ese caso seria necesario hacer una referencia DOM un poco mas complicada.

Con esta técnica puedes colocar tantos pop-ups que quieres sin interferir ninguno sobre el otro, simplemente utilizando la misma función para mostrarse/ocultarse. ademas de que puedes especificar un class para definir los estilos propios del div.

EDIT:

te me adelantaste djaevi mientras escribia xD
PD: este script es valido para cualquier navegador.