Sto tentando di nascondere un div se l'utente fa clic ovunque MA il popup O sono figli. Questo è il codice che ho finora:jQuery: Nascondi popup se il clic viene rilevato altrove
$("body").click(function(){
var $target = $(event.target);
if(!$target.is(".popup") || !$target.is(".popup").children()){
$("body").find(".popup").fadeOut().removeClass('active');
}
});
Si lavora per il div .popup, ma se da suoi figli sono cliccato, nasconde comunque.
Un suggerimento minore è scrivere $ (". Popup: visible"). FadeOut(). RemoveClass ("active"); - Ho avuto problemi in cui la cosa riappare solo per svanire di nuovo. – ehdv
Questa sembra un'ottima soluzione, tuttavia, sto avendo problemi quando ci sono cose che devono accadere all'interno del popup in base all'evento click. In particolare, ho un'app Rails e sto usando un: remote => true su un modulo all'interno della finestra popup. In questo caso, la funzionalità AJAX si interrompe quando viene utilizzato e.stopPropagation(). Ho creato http://stackoverflow.com/questions/5904602/jquerys-event-stoppropagation-causing-problems-with-rails-remote-true prima di trovare questa domanda. In qualche modo intorno a questo? – robertwbradford
... intendevo dire "using a: method =>: delete,: remote => true su un link 'destroy' all'interno della finestra popup ..." – robertwbradford