clic del mouse da qualche altra parte della pagina (non su un div specifico)

Vorrei chiudere una piccola window pop-up nella pagina quando l'utente ha cliccato in qualsiasi punto della pagina diversa dall'area della casella. come trovarlo?

$(document.body).click(function(e){ var $box = $('#little-pop-up-box-id'); if(e.target.id !== 'little-pop-up-box-id' && !$.contains($box[0], e.target)) $box.remove(); }); 

e.target è il DOM node che ha ricevuto l' click event . Sto controllando innanzitutto se l' ID di quel elemento non è quello che cerchiamo.

Il secondo controllo !$.contains($box[0], e.target) assicura che il DOM node of invocation non sia nell'elemento che vogliamo hide.

Beh, credo che sia il tempo plugin! :

 (function($){ $.fn.outside = function(ename, cb){ return this.each(function(){ var $this = $(this), self = this; $(document.body).bind(ename, function tempo(e){ if(e.target !== self && !$.contains(self, e.target)){ cb.apply(self, [e]); if(!self.parentNode) $(document.body).unbind(ename, tempo); } }); }); }; }(jQuery)); 

sinossi

 $('#container').outside('click', function(e){ $(this).remove(); }); 

Esempio:

http://www.jsfiddle.net/qbDKN/30/

@ la soluzione di jAndy è buona, ma ho voluto citare anche il plugin "Outside Events" di Ben Alman . Ecco un esempio rapido che lo usa:

 $("#popup").bind("clickoutside", function(event){ $(this).hide(); }); 

Grab evento globale clic, o impostare div divisione trasparente 100% / 100% sotto la window pop-up con tale evento.

 $("html").click(function(){ //close popup });