Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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_Html_Css - Fatal编程技术网

Javascript 多个弹出模式在单击“离开”时关闭?

Javascript 多个弹出模式在单击“离开”时关闭?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有多个弹出模式,如搜索、按钮、链接和动态添加的元素,我想在每个弹出模式的容器外单击它们时关闭/隐藏它们。如果对所有具有相同模式的弹出窗口都没有办法 下面是一个示例代码: 您可以做的一个技巧是在文档上添加一个单击处理程序,关闭所有模态。然后,可以在调用stopImmediatePropagation的模式容器上使用事件处理程序。这将防止所有其他处理程序启动并停止冒泡阶段,包括文档处理程序。因此,只有在模式容器外部单击时,文档处理程序才会启动 函数切换ModalModel{ $'.model:n

我有多个弹出模式,如搜索、按钮、链接和动态添加的元素,我想在每个弹出模式的容器外单击它们时关闭/隐藏它们。如果对所有具有相同模式的弹出窗口都没有办法

下面是一个示例代码:

您可以做的一个技巧是在文档上添加一个单击处理程序,关闭所有模态。然后,可以在调用stopImmediatePropagation的模式容器上使用事件处理程序。这将防止所有其他处理程序启动并停止冒泡阶段,包括文档处理程序。因此,只有在模式容器外部单击时,文档处理程序才会启动

函数切换ModalModel{ $'.model:not'+model+.removeClass'visible'; $modal.toggleClass“可见”; } $”。更多标记,.js-search\u form“。单击,函数E{ e、 停止即时传播; }; $'a.toggle-menu'。单击,函数E{ 切换“更多标签”; e、 防止违约; e、 停止即时传播; }; $'.js-search__图标'。单击,函数E{ 切换模式“.js-search__form”; $'.js search'.focus; e、 防止违约; e、 停止即时复制 }; $document.on'click',function e{ $'.modal'.removeClass'visible'; }; .btn{ 显示:内联块; 页边距底部:0; 字体大小:400; 文本对齐:居中; 垂直对齐:中间对齐; 光标:指针; 背景图像:无; 边框:1px实心透明; 空白:nowrap; 填充:0.375雷姆0.75雷姆; 字号:1rem; 线高:1.42857143; 边界半径:0.25雷姆; -webkit用户选择:无; -moz用户选择:无; -ms用户选择:无; 用户选择:无; } .btn边界{ 边框:1px实心ddd; 边界半径:5雷姆; 填充:0.5雷姆1.25雷姆; 颜色:777; 边缘底部:0.5雷姆; 右边距:0.25雷姆; 字体大小:0.875rem; } svg{ 显示:内联块; 高度:1公厘; 宽度:1em; 填充:777; 垂直对齐:中间对齐; } .更多标签{ 位置:固定; 底部:0; 左:10px; 右:0; 宽度:250px; 显示:块; 转化:转化率200%; 身高:70%; 填充:1.25rem; 背景:fff; 盒影:0.37px 10px rgba0,0,0,0.1; 溢出y:滚动; z指数:9999; /*过渡计时功能:立方贝塞尔0.64,0.57,0.67,1.53*/ 变换:变换0.35s三次贝塞尔0.77,0,0.175,1; } 。更多标签。可见{ 变换:translateY0; } .search\u容器svg{ 位置:相对位置; 宽度:19px; 高度:19px; 填充:777; } .搜索表格{ 位置:固定; 背景:fff; /*盒影:0px 30px 20px 6px rgba0,0,0,0.05*/ 宽度:100%; 左:0; 高度:90px; 排名:0; 右:0; 填充:1rem; z指数:9999; 可见性:隐藏; 不透明度:0; -moz过渡:所有0.5s立方贝塞尔0.77,0,0.175,1; -o型过渡:所有0.5s立方贝塞尔0.77,0,0.175,1; -webkit过渡:所有0.5s立方贝塞尔0.77,0,0.175,1; 过渡:所有0.5s立方贝塞尔0.77,0,0.175,1; } .search\u form.visible{ 显示:块; 能见度:可见; 不透明度:1; } 搜索图标
但当你点击容器本身时,它会隐藏容器,但我不想这样。你指的是哪个容器?此外,每次单击a.btn-border元素(包括菜单中的链接)时,都要切换“更多标记”div。请参阅更新的代码段谢谢您的更新。现在可以了,但是当你点击一个元素时,我遇到了一个问题,那就是没有关闭另一个已经打开的模式。你能给出一个具体的例子吗?当你点击搜索图标和更多按钮时,不太确定你指的是哪些元素和模态,这两个按钮都打开了它们的容器。