Foros del Web » Programando para Internet » Javascript »

Acción al hacer clic fuera de una capa.

Estas en el tema de Acción al hacer clic fuera de una capa. en el foro de Javascript en Foros del Web. Hola, como puedo hacer que se ejecute una acción, que será que la capa desaparezca, al hacer clic fuera de ella. Por ejemplo el de ...
  #1 (permalink)  
Antiguo 15/06/2014, 14:59
VityOsma
Invitado
 
Mensajes: n/a
Puntos:
Acción al hacer clic fuera de una capa.

Hola, como puedo hacer que se ejecute una acción, que será que la capa desaparezca, al hacer clic fuera de ella.

Por ejemplo el de la siguiente pagina, al abrir la capa de iniciar sesión, si haces clic fuera de ella se oculta y si el clic es en alguno de los demás botones, se ejecuta la función de ficho botón.

http://www.booking.com/

Gracias.
  #2 (permalink)  
Antiguo 15/06/2014, 15:41
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Acción al hacer clic fuera de una capa.

Los eventos involucrados son onClick() y onMouseOver()
__________________
Salu2!
  #3 (permalink)  
Antiguo 15/06/2014, 18:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Acción al hacer clic fuera de una capa.

Si solo deseas ocultar al elemento en cuestión luego de dar un clic en cualquier zona de la página excepto en el área que ocupa el elemento, debes de usar la propiedad event.target para detectar al elemento en donde se produjo el evento, que en este caso será el evento click. Luego, compara a este elemento con el elemento que quieres ocultar y si son distintos, procedes a ocultar al elemento mediante la propiedad display de CSS.

Código Javascript:
Ver original
  1. var div = document.getElementById("id_div");
  2. window.addEventListener("click", function (event){
  3.     if (event.target != div) div.style.display = "none";
  4. }, false);

Así es como quedaría:


Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 15/06/2014, 19:17
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Acción al hacer clic fuera de una capa.

Alexis: como siempre aprendo algo de tus ejemplos jejeje.... esta vez lo de "transition" (buen efecto)

La pregunta es..... se que te gusta mucho usar event.target pero cual es la ventaja ?
__________________
Salu2!
  #5 (permalink)  
Antiguo 15/06/2014, 19:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Acción al hacer clic fuera de una capa.

Como ves en este ejemplo, el evento se asigna al objeto global, por lo que no importa en dónde ocurra, pues siempre se ejecutará la función asignada. Si no lo hicieras así, podrías asignar el mismo evento y función al resto de elementos del documento, pero sería redundante.

Otro caso en el que particularmente lo uso, es en los menúes de opciones, en los que uso elementos <li> con una data-* asignada. Cuando se produce el evento click en algún elemento <li>, sea este del menú o de otra parte, verifico que tenga el atributo data-* para realizar una operación determinada.

Hay muchos otros casos de aplicación, esto ya corresponde con la Programación Orientada a Eventos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: Ninguno
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 09:52.