Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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
Html 如果打开另一个弹出窗口,请关闭打开的弹出窗口_Html_Css_User Interface_Popup_Frontend - Fatal编程技术网

Html 如果打开另一个弹出窗口,请关闭打开的弹出窗口

Html 如果打开另一个弹出窗口,请关闭打开的弹出窗口,html,css,user-interface,popup,frontend,Html,Css,User Interface,Popup,Frontend,我做了几个弹出窗口。要关闭弹出窗口,请按打开的弹出窗口。我想让如果你打开一个新的弹出窗口,那么另一个弹出窗口就会关闭 例如,如果我打开一个弹出窗口1。然后我打开弹出窗口2,当弹出窗口2打开时,弹出窗口1关闭 这里是我的html代码 <body style="text-align:center"> <br><br><br> <div class="popup" onclick="popUp1()">Click me! <span

我做了几个弹出窗口。要关闭弹出窗口,请按打开的弹出窗口。我想让如果你打开一个新的弹出窗口,那么另一个弹出窗口就会关闭

例如,如果我打开一个弹出窗口1。然后我打开弹出窗口2,当弹出窗口2打开时,弹出窗口1关闭

这里是我的html代码

<body style="text-align:center">
<br><br><br>
<div class="popup" onclick="popUp1()">Click me!
  <span class="popuptext" id="myPopup1">Popup 1</span>
</div>
&nbsp; &nbsp; &nbsp;
<div class="popup" onclick="popUp2()">Click me!
  <span class="popuptext" id="myPopup2">Popup 2</span>
</div>

&nbsp; &nbsp; &nbsp;
<div class="popup" onclick="popUp3()">Click me!
  <span class="popuptext" id="myPopup3">Popup 3</span>
</div>

<script>
function popUp1() {
    var popup = document.getElementById("myPopup1");
    popup.classList.toggle("show");
}

function popUp2() {
    var popup = document.getElementById("myPopup2");
    popup.classList.toggle("show");
}

function popUp3() {
    var popup = document.getElementById("myPopup3");
    popup.classList.toggle("show");
}
</script>

</body>

谢谢你

你需要一个JavaScript函数来完成这项工作,比如:

 $('.popup').on('click', function() {
      $('.popup').each(function(i, elem){
          if ($(elem).hasClass('show') && this !== elem ) {
                $(elem).removeClass('show');
          }
      });
 });
我将尝试使用普通JavaScript解释它,因为您没有像在其他回复中那样使用jQuery

此代码应删除所有具有
show
类的弹出窗口,并将
show
类添加到触发事件的弹出窗口中

   function closeOpenPopups (e) {
    var openpopups = document.querySelectorAll('.popup.show');
     openpopups.forEach(function(){
      this.classList.remove('show');
     });
      e.classList.add('show');
    }
    var popups = document.querySelectorAll('.popup');
您可以将其添加到onclick属性,方法与您在HTML上所做的相同

<div class="popup" onclick="closeOpenPopups()" >
 ...
</div>

...
希望有帮助

<div class="popup" onclick="closeOpenPopups()" >
 ...
</div>