Estoy tratando de ocultar un div si el usuario hace clic en cualquier lugar PERO en la ventana emergente O en los elementos secundarios. Este es el código que tengo hasta ahora:jQuery: ocultar ventana emergente si se detectó clic en otra parte
$("body").click(function(){
var $target = $(event.target);
if(!$target.is(".popup") || !$target.is(".popup").children()){
$("body").find(".popup").fadeOut().removeClass('active');
}
});
Funciona para el div .popup, pero si cualquiera de sus hijos se hace clic, se esconde de todos modos.
Una sugerencia menor es escribir $ (". Popup: visible"). FadeOut(). RemoveClass ("activo"); - He tenido problemas donde reaparece para desaparecer nuevamente. – ehdv
Esto parece una gran solución, sin embargo, estoy teniendo problemas cuando hay cosas que deben ocurrir dentro de la ventana emergente basada en el evento de clic. Específicamente, tengo una aplicación Rails y estoy usando un: remote => true en un formulario dentro de la ventana emergente. En este caso, la funcionalidad AJAX se rompe cuando se usa e.stopPropagation(). Creé http://stackoverflow.com/questions/5904602/jquerys-event-stoppropagation-causing-problems-with-rails-remote-true antes de encontrar esta pregunta. De cualquier forma alrededor de esto? – robertwbradford
... Quise decir "using a: method =>: delete,: remote => true en un 'destroy' link_to dentro de la ventana emergente ..." – robertwbradford