Foros del Web » Programando para Internet » Javascript »

llamar funcion js al pulsar sobre el documento

Estas en el tema de llamar funcion js al pulsar sobre el documento en el foro de Javascript en Foros del Web. Hola tengo el siguiente problema, tengo una funcion que muestra una lista desplegable funciona correctamente con la propiedad css display:none, al pulsar sobre la lista ...
  #1 (permalink)  
Antiguo 22/05/2014, 16:35
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años, 6 meses
Puntos: 5
llamar funcion js al pulsar sobre el documento

Hola tengo el siguiente problema, tengo una funcion que muestra una lista desplegable funciona correctamente con la propiedad css display:none, al pulsar sobre la lista la muestra y viceversa, pero el problema que tengo es que no se como hacer que si el usuario dejo la lista desplegada y clickea cualquier parte del documento que me cierre la lista e incluso si clickea un boton del documento.
Alguna ayuda?
saludos
  #2 (permalink)  
Antiguo 22/05/2014, 16:47
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: llamar funcion js al pulsar sobre el documento

buenas!

deberías crear un listener global. es decir, registrar el evento click en el documento. en el handler (la función) debes determinar a qué se le hizo click. si fue a la lista desplegable, entonces muestra u oculta según el estado actual del desplegable... o más bien dependerá exactamente de los efectos que quieras dar. si al elemento que se le hizo click fue otro que no sea la lista, entonces ocultas. esto lo logras mediante la propiedad target del objeto Event. este objeto lo recibes automáticamente como parámetro en la función registrada al evento.

Código:
document.body.addEventListener('click', function(evt){
alert(evt.target.nodeName);
});
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 22/05/2014, 16:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: llamar funcion js al pulsar sobre el documento

Captura el elemento objetivo (event.target) sobre el que se dio el clic y realiza una comparación; si no es parte de la lista desplegable, ocultas a esta última.

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

La variable lista debe contener una referencia hacia tu lista desplegable para que esto sea factible. Podrías verificar que el elemento al que se le dio clic, se encuentre entre la lista de nodos hijos de la lista desplegable.

Saludos

Edito: Se me adelantaron.
__________________
«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 22/05/2014, 17:00
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: llamar funcion js al pulsar sobre el documento

Hola en principio gracias a los dos por vuestra colaboracion, voy a leer sobre esto que me estais explicando y si tengo dudas ya comento aqui.
saludos.
  #5 (permalink)  
Antiguo 22/05/2014, 18:33
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: llamar funcion js al pulsar sobre el documento

Tambien soy novato y cuando lei ambas respuestas me di cuenta de que se menos de lo que creia porque no me habia percatado de que existian eventos para el objeto window y otros para el objeto document.


Aqui explican algo de eso:

http://stackoverflow.com/questions/1...deventlistener

https://developer.mozilla.org/en-US/...ference/Events

http://stackoverflow.com/questions/9...-in-javascript
__________________
Salu2!
  #6 (permalink)  
Antiguo 23/05/2014, 05:55
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: llamar funcion js al pulsar sobre el documento

Bueno gracias a todos por vuestra colaboracion ya que desconocia por completo estas funciones entre otros objetos como saber el nombre del hijo del nodo padre e incluso el valor de la clase , solo decir que gracias a los expertos en javascript me esta entrando mucha curiosidad por aprender este lenguaje que aparte de importante es muy interesante.
saludos.

Etiquetas: funcion, js, pulsar
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 08:34.