Desvanecer ventana emergente cuando el usuario hace clic en cualquier parte del documento [cerrado]

Lo que necesitaba era cuando aparece una ventana emergente y el usuario hace clic en cualquier parte del documento, excepto en la ventana emergente, la ventana emergente debe desaparecer.

Probé con el método target.attr, pero fallé en Mozilla.

¿Hay alguna idea? Gracias de antemano

preguntado el 12 de junio de 12 a las 16:06

4 Respuestas

Puedes usar jQuery desvanecimiento método y una método.

Algo como:

jQuery("#yourpoup").click(function(){ return false; });
jQuery(document).one("click", function() { jQuery("#yourpoup").fadeOut(); });

Según este pregunta, usar esto es mejor que usar bind.

contestado el 23 de mayo de 17 a las 12:05

lo que necesitaba era, desvanecerse cuando el usuario hace clic en cualquier parte del cuerpo en lugar de la ventana emergente. - Surjith SM

Tienes un error tipográfico: "uno" en lugar de "encendido". Traté de arreglarlo, pero como es solo un carácter (¡pero uno importante!), ¡Stackoverflow no me deja! - Melanie

No, debería ser uno, consulte el enlace proporcionado. - eric.itzhak

OK, el error estaba en la descripción, no en el código. :) ¡Gracias, no conocía este útil método! - Melanie

También hay un complemento JQuery para hacer clic fuera, esto le permitirá manejar el clic incluso para todo MENOS la ventana emergente.

http://benalman.com/projects/jquery-outside-events-plugin/

$("#yourpopup").bind( "clickoutside", function(event){
$(this).fadeOut(500);
});

Respondido el 12 de junio de 12 a las 16:06

Si su ventana emergente es un diálogo de JQuery, puede ver este hilo:

jQuery UI - Cerrar cuadro de diálogo cuando se hace clic en el exterior

contestado el 23 de mayo de 17 a las 12:05

Use jquery como ejemplo, asumido $popup es su elemento emergente

$('body').click(function(){
    // hide the popup here
});

$popup.click(function(e) {
    // do something here if needed
    e.stopPropagation();
});

La clave es cuando haga clic en la ventana emergente, deje de burbujear el evento en el cuerpo, por lo que no activará la función adjunta al cuerpo.

Respondido el 12 de junio de 12 a las 16:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.