Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我单击外部时,如何使此弹出框消失?_Javascript_Jquery_Popup - Fatal编程技术网

Javascript 当我单击外部时,如何使此弹出框消失?

Javascript 当我单击外部时,如何使此弹出框消失?,javascript,jquery,popup,Javascript,Jquery,Popup,当我点击背景上的某个地方时,我希望弹出窗口消失。问题是,当我单击[X]或弹出窗口本身时,它消失了 想象一下,如果这让我的意图更加清晰的话,它是一个日历选择器 我怎样才能让它做到这一点呢?这种技术的基本jist是有一个“捕获”点击事件并隐藏所需元素的包装(或用z-index分层的独立元素)。我已经用一个例子更新了你的提琴,说明了这是如何工作的,只是想象一下毯子元素的高度和宽度为100%(覆盖整个视口) 为正文设置单击处理程序以删除弹出窗口 为在事件上调用stopPropagation()的弹出窗口

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

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


我怎样才能让它做到这一点呢?

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

  • 为正文设置
    单击
    处理程序以删除弹出窗口

  • 为在事件上调用
    stopPropagation()
    的弹出窗口本身设置
    单击
    处理程序,以防止其冒泡到正文中

  • 大致:

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

    如果你粘贴了一个链接就好了。“更新”创建了一个新的修订版#,不知道您指的是哪一个。对不起,我不知道关于JSFIDLE。URL是这样的:呃……您的一揽子解决方案显示不正确,而且似乎不是一个很好的方法。啊。。太简单了!在今天的工作中,我花了好几个小时和它斗争,试图检查我点击的元素,以确定它是否应该关闭。