var divShow; // 你弹出的div对象 document.body.onclick=function(e) { e = e||event; var t = e.target||e.srcElement if(t!=divShow){ divShow.style.display = "none"; } };
感谢各位大侠了 我已经解决问题啦 document.onclick = function testClick(event) { if (isClick) { var div = document.getElementById("alert"); //禁止点击区域 var divAlert = $("#alert"); event = event || window.event; var mouseX = event.clientX//获取鼠标点击处的X坐标 var mouseY = event.clientY; //获取鼠标点击出的Y坐标 var top = div.offsetTop; //获取禁止点击区域顶部与窗体上端之间距�? var left = div.offsetLeft; //获取禁止点击区域右侧与窗体左侧之间距�? var right = left + div.offsetWidth; //获取禁止点击区域左侧与窗体左侧之间距�? var bottom = top + div.offsetHeight; //获取禁止点击区域底部与窗体上端之间距�? if (!((mouseX > left && mouseX < right) && (mouseY > top && mouseY < bottom))) { //判断鼠标点击位置的坐标是否处于禁止点击区域外 divAlert.addClass("alertUnDiv").removeClass("alertDiv"); isClick = false; } }}
document.onclick = function testClick(event) { if (isClick) { var div = document.getElementById("alert"); //禁止点击区域 var divAlert = $("#alert"); event = event || window.event; var mouseX = event.clientX//获取鼠标点击处的X坐标 var mouseY = event.clientY; //获取鼠标点击出的Y坐标 var top = div.offsetTop; //获取禁止点击区域顶部与窗体上端之间距�? var left = div.offsetLeft; //获取禁止点击区域右侧与窗体左侧之间距�? var right = left + div.offsetWidth; //获取禁止点击区域左侧与窗体左侧之间距�? var bottom = top + div.offsetHeight; //获取禁止点击区域底部与窗体上端之间距�? if (!((mouseX > left && mouseX < right) && (mouseY > top && mouseY < bottom))) { //判断鼠标点击位置的坐标是否处于禁止点击区域外 divAlert.addClass("alertUnDiv").removeClass("alertDiv"); isClick = false; } }} 感谢大家的帮助哈
为页面的body或者遮盖层添加单击事件,写弹出层隐藏代码
如果不是就关闭 反之....
来判断是否点击了这个
document.body.onclick=function(e)
{
e = e||event;
var t = e.target||e.srcElement
if(t!=divShow){
divShow.style.display = "none";
}
};
应该是t是不是divShow的子元素。。
一般来说,是不会t==divShow的,srcElement总是指向最里层的元素。。
document.body.onclick=function(event){
event=event||window.event;
var Element=this;
if(Element!=div){
div.style.display="none";
}
}
while(t=t.parentNode){
if(t==divShow){
return;
}
if(t.nodeName.toLowerCase()=="body"){
divShow.style.display = "none";
return;
}
}
document.onclick = function testClick(event) {
if (isClick) {
var div = document.getElementById("alert"); //禁止点击区域
var divAlert = $("#alert");
event = event || window.event;
var mouseX = event.clientX//获取鼠标点击处的X坐标
var mouseY = event.clientY; //获取鼠标点击出的Y坐标
var top = div.offsetTop; //获取禁止点击区域顶部与窗体上端之间距�?
var left = div.offsetLeft; //获取禁止点击区域右侧与窗体左侧之间距�?
var right = left + div.offsetWidth; //获取禁止点击区域左侧与窗体左侧之间距�?
var bottom = top + div.offsetHeight; //获取禁止点击区域底部与窗体上端之间距�? if (!((mouseX > left && mouseX < right) && (mouseY > top && mouseY < bottom))) { //判断鼠标点击位置的坐标是否处于禁止点击区域外
divAlert.addClass("alertUnDiv").removeClass("alertDiv");
isClick = false;
}
}}
document.onclick = function testClick(event) {
if (isClick) {
var div = document.getElementById("alert"); //禁止点击区域
var divAlert = $("#alert");
event = event || window.event;
var mouseX = event.clientX//获取鼠标点击处的X坐标
var mouseY = event.clientY; //获取鼠标点击出的Y坐标
var top = div.offsetTop; //获取禁止点击区域顶部与窗体上端之间距�?
var left = div.offsetLeft; //获取禁止点击区域右侧与窗体左侧之间距�?
var right = left + div.offsetWidth; //获取禁止点击区域左侧与窗体左侧之间距�?
var bottom = top + div.offsetHeight; //获取禁止点击区域底部与窗体上端之间距�? if (!((mouseX > left && mouseX < right) && (mouseY > top && mouseY < bottom))) { //判断鼠标点击位置的坐标是否处于禁止点击区域外
divAlert.addClass("alertUnDiv").removeClass("alertDiv");
isClick = false;
}
}}
感谢大家的帮助哈