将Div隐藏在外部
Hide Div onclick outside
在我的网站上,当用户单击表单时弹出一个div。我使用onclick事件处理程序来显示div。当用户点击div以外的任何地方时,我希望div隐藏自己。我不能使用onblur…因为这对潜水者不起作用。有人能建议一个替代方案吗?
谢谢。下面是我的代码:Javascript:
function hideDiv() {
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById('mydiv').style.visibility = 'hidden';
}
else {
if (document.layers) { // Netscape 4
document.mydiv.visibility = 'hidden';
}
else { // IE 4
document.all.mydiv.style.visibility = 'hidden';
}
}
}
function showDiv() {
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById('mydiv').style.visibility = 'visible';
}
else {
if (document.layers) { // Netscape 4
document.mydiv.visibility = 'visible';
}
else { // IE 4
document.all.mydiv.style.visibility = 'visible';
}
}
}
刚刚找到一个简单的解决方案,使用onmouseover/out事件处理程序。
只在变量mouse_out
为true时调用hideDiv()函数。
var mouse_out;
mydiv.onmouseover = function(){ mouse_out = false }; // mouse is over div
mydiv.onmouseout = function(){ mouse_out = true }; // mouse outside
document.onclick = function(){
if(mouse_out)
hideDiv(), // hides mydiv
document.onclick = null; // disables next clicks on document
};
它适用于我测试的所有浏览器,包括IE 5。
(IE4和NS4我不知道)
我过去处理这些事情的方法是在div后面创建一个透明层(使用完全透明的BG图像),它的CSS位于:
div#overlay{
position: fixed;
width: 100%;
height: 100%;
background-image:url('transparent.gif');
z-index: 1;
}
这个div当然只有在上面的div可见时才"可见"。然后附加一个onclick事件处理程序来再次隐藏。
确保你的"pop-updiv"的z-index值至少为2。
相关文章:
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 如何获取外部网站上被javascript隐藏的url
- 如何使内部元素具有位置:绝对覆盖溢出:隐藏外部元素
- d3.js在元素外部单击时,隐藏该元素
- 如果在外部单击,则隐藏弹出窗口.为什么我的脚本没有'不起作用
- 使用jquery在外部单击时引导折叠/隐藏
- 显示/隐藏外部.js文件的一部分
- 防止在工具提示外部单击时隐藏/关闭剑道工具提示
- 当隐藏输入框的文本被外部 jquery 更改时,如何触发函数
- 如何在元素外部单击时使用 jQuery 隐藏元素
- 如何:确认隐藏外部链接的警报
- Javascript在单击外部时弹出隐藏,并显示是否单击了链接
- 如何在我的 HTML 页面中单击该部分外部时隐藏该部分
- 分解javascript/jquery代码,以便在单击外部时隐藏模态
- 在触发元素外部单击时隐藏元素
- 如何在浏览器窗口调整大小时隐藏外部脚本
- JavaScript外部文件隐藏源代码
- 使用外部JS显示隐藏信息
- 在触摸键盘外部时禁用Firefox OS键盘自动隐藏
- 单击外部以使用按钮隐藏容器