如何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]);
编辑:皮肤,误解,点击里面应该留下,否则隐藏…反转平等检查。