我使用div
JS事件处理程序将display:inline
设置为onclick()
。当我点击除现在可见div之外的页面上的任何其他位置时,如何让div
返回display:none
?
我用Google搜索blur
并将focus
设置为另一个元素,但我不知道如何实际执行此操作。
答案 0 :(得分:2)
如果您想使用jQuery,则很容易:
$('*').click(function(){
if ($(this).attr('id') !== 'div_id'){
$('#div_id').css('display', 'none');
}
});
使用所有*选择器,上述内容变得相当缓慢,因此我建议您使用jQuery Outside Events plugin。
示例:强>
$('#div_id').bind('clickoutside', function(){
$(this).css('display', 'none');
});
答案 1 :(得分:0)
你可以通过给它100%的宽度和高度创建一个覆盖整个窗口区域的绝对div,然后给它一个onclick来显示:none你的div。你的div应该有一个大于绝对div的z-index
答案 2 :(得分:0)
原始js样本可以找到here。
答案 3 :(得分:0)
document.onclick = function(e) {
if (!e) var e = window.event;
if (e.target.id == 'the_id_of_your_div') {
// Do something
} else {
// Do something else
}
}