当我点击外面时如何让这个弹出框消失?

时间:2011-02-22 02:10:14

标签: javascript jquery popup

http://jsfiddle.net/mnbayazit/by3zy/2/

当我点击背景上的某个地方时,我希望弹出窗口消失。问题是,当我点击[X]或弹出窗口时它会消失。

想象一下,如果这让我的意图更清晰,那么它就是一个日历选择器。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:7)

  1. 为正文设置click处理程序以删除弹出窗口。

  2. 为弹出窗口本身设置click处理程序,在事件上调用stopPropagation(),以防止它冒泡到身体。

  3. 大致是:

    function showMyPopup(){
      ...
      $(myPopupDiv).click(function(e){
        e.stopPropagation();
      });
    }
    function closeMyPopup(){
      ...
    }
    $(document.body).click(closeMyPopup);
    

答案 1 :(得分:0)

使用这种技术的基本要点是有一个包裹(或与z-index分层的独立元素)“捕获”点击事件,并隐藏你想要的元素。我已经用一个如何工作的例子来更新你的小提琴,除了想象毯子元素的高度和宽度为100%(覆盖整个视口)。