如何closures隐藏DIV点击它(但不在里面)

我有一个div ,我添加到一个页面,我需要做到这一点,当用户点击该部门之外,它会隐藏,但不是如果他点击侧div,那么它应该留下来。
我试过使用
e.stopPropagation();

e.preventDefault();

将它添加到该特定的div的点击事件,但没有工作。

任何人都知道有什么好的想法?

在popuphover上切换标志

JSBin演示

 var $pop = $('#popup'), notHov = 1; // Hover flag $pop.hover(function(){ notHov^=1; }); // Toggle flag on hover $(document).on('mouseup keyup', function( e ){ if(notHov||e.which==27) $pop.fadeOut(); }); 

注意:
如果页面某处有一个元素, 可以防止 mouseup event冒泡达到document的DOM树(为了注册),您可能需要创build一个全屏 (如页面叠加) popup包装器来注册点击事件,改变上面的代码只是select器:而不是$(document)将是$('#popupWrapper')

可能最简单的方法是监视整个文档的点击,如果不是那个元素,就忽略它。 如果是,那就隐藏它。

 (function(div) { $(document).click(function(e) { if (e.srcElement !== div) $(div).hide(); }); })($('div')[0]); 

编辑:皮肤,误解,点击里面应该留下,否则隐藏…反转平等检查。

http://jsfiddle.net/robert/QcPx4/