现在我已经做出了一个弹出层   很小的那种,  
我需要一个这样的效果  当点击这个弹出层外面的区域的时候  这个层就隐藏,  我该如何去做呢\
???????

解决方案 »

  1.   


    为页面的body或者遮盖层添加单击事件,写弹出层隐藏代码
      

  2.   

    监听document.onclick  判断当期目标的 id或class 是否等于弹出层的 
    如果不是就关闭 反之....
      

  3.   

    e.target以及IE下window.event.srcElement
    来判断是否点击了这个
      

  4.   

     var divShow; // 你弹出的div对象
    document.body.onclick=function(e)
        {
              e = e||event;
             var t = e.target||e.srcElement
    if(t!=divShow){
            divShow.style.display = "none";
    }
        };
      

  5.   


    应该是t是不是divShow的子元素。。
    一般来说,是不会t==divShow的,srcElement总是指向最里层的元素。。
      

  6.   

    判断点击的是不是弹出层,不是则隐藏弹出层var div=document.getElementById('弹出层的id');
    document.body.onclick=function(event){
        event=event||window.event;
        var Element=this;
        if(Element!=div){
            div.style.display="none";
        }
    }
      

  7.   


    while(t=t.parentNode){
    if(t==divShow){
    return;
    }
    if(t.nodeName.toLowerCase()=="body"){
    divShow.style.display = "none";
    return;
    }
    }
      

  8.   

    感谢各位大侠了  我已经解决问题啦    
    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;
            }
        }}
      

  9.   


    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;
            }
        }}
    感谢大家的帮助哈