首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Html/CSS/Javascript: Popup onclick不适用于第二个div

Html/CSS/Javascript: Popup onclick不适用于第二个div
EN

Stack Overflow用户
提问于 2018-07-20 10:37:16
回答 3查看 475关注 0票数 -1

div被选中时,我打开一个小的弹出框。它可以工作,但如果我尝试第二次这样做(如下所示),它不能工作。

感谢您能提供的任何帮助,非常感谢。以下是我来自w3schools的代码

HTML:

代码语言:javascript
复制
<div class="popup" onclick="myFunction()">
  Click me!
  <span class="popuptext" id="myPopup">Popup text...</span>
</div>

<div class="popup" onclick="myFunction2()">
  Click me2!
  <span class="popuptext" id="myPopup2">Popup text...2</span>
</div>

JavaScript:

代码语言:javascript
复制
function myFunction() {
  var popup =
    document.getElementById("myPopup");
  popup.classList.toggle("show");
}

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

CSS:

代码语言:javascript
复制
/* Popup container */
.popup {
  position: relative;
  display: inline-block;
  cursor: pointer;
}

/* The actual popup (appears on top) */
.popup .popuptext {
  visibility: hidden;
  width: 160px;
  background-color: #555;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 8px 0;
  position: absolute;
  z-index: 1;
  bottom: 125%;
  left: 50%;
  margin-left: -80px;
}

/* Popup arrow */
.popup .popuptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #555 transparent transparent transparent;
}

/* Toggle this class when clicking on the popup 
     container (hide and show the popup) */
.popup .show {
  visibility: visible;
  -webkit-animation: fadeIn 1s;
  animation: fadeIn 1s
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-20 10:40:23

myFunction声明了两次,第二次将覆盖第一次。

将其更改为myFunction2或任何更新您的onclick="myFunction2()"的内容

检查控制台中的错误总是很好的:)

代码语言:javascript
复制
 function myFunction() {
   var popup = 
   document.getElementById("myPopup");
   popup.classList.toggle("show");
  }
   function myFunction2() {
   var popup = 
   document.getElementById("myPopup2");
   popup.classList.toggle("show");
  }
代码语言:javascript
复制
body {
    padding-top: 80px;
    text-align: center;
}
/* Popup container */
 .popup {
 position: relative;
 display: inline-block;
 cursor: pointer;
 }

 /* The actual popup (appears on top) */
 .popup .popuptext {
 visibility: hidden;
 width: 160px;
 background-color: #555;
 color: #fff;
 text-align: center;
 border-radius: 6px;
 padding: 8px 0;
 position: absolute;
 z-index: 1;
 bottom: 125%;
 left: 50%;
 margin-left: -80px;
 }

 /* Popup arrow */
 .popup .popuptext::after {
 content: "";
 position: absolute;
 top: 100%;
 left: 50%;
 margin-left: -5px;
 border-width: 5px;
 border-style: solid;
 border-color: #555 transparent transparent 
 transparent;
 }

 /* Toggle this class when clicking on the popup 
 container (hide and show the popup) */
 .popup .show {
 visibility: visible;
 -webkit-animation: fadeIn 1s;
 animation: fadeIn 1s
 }
代码语言:javascript
复制
<div class="popup" onclick="myFunction()">Click 
me!
  <span class="popuptext" id="myPopup">Popup 
   text...</span>
</div>

<div class="popup" onclick="myFunction2()">Click 
me2!
  <span class="popuptext" id="myPopup2">Popup 
   text...2</span>
 </div>

票数 1
EN

Stack Overflow用户

发布于 2018-07-20 10:47:05

您的代码似乎工作得很好。

代码语言:javascript
复制
/* Popup container */
 .popup {
 position: relative;
 display: inline-block;
 cursor: pointer;
 }

 /* The actual popup (appears on top) */
 .popup .popuptext {
 visibility: hidden;
 width: 160px;
 background-color: #555;
 color: #fff;
 text-align: center;
 border-radius: 6px;
 padding: 8px 0;
 position: absolute;
 z-index: 1;
 bottom: 125%;
 left: 50%;
 margin-left: -80px;
 }

 /* Popup arrow */
 .popup .popuptext::after {
 content: "";
 position: absolute;
 top: 100%;
 left: 50%;
 margin-left: -5px;
 border-width: 5px;
 border-style: solid;
 border-color: #555 transparent transparent 
 transparent;
 }

 /* Toggle this class when clicking on the popup 
 container (hide and show the popup) */
 .popup .show {
 visibility: visible;
 -webkit-animation: fadeIn 1s;
 animation: fadeIn 1s
 }
代码语言:javascript
复制
<div class="popup" onclick="myFunction()">Click 
me!
  <span class="popuptext" id="myPopup">Popup 
   text...</span>
</div>

<div class="popup" onclick="myFunction2()">Click 
me2!
  <span class="popuptext" id="myPopup2">Popup 
   text...2</span>
 </div>
 <script>
   function myFunction() {
   var popup = 
   document.getElementById("myPopup");
   popup.classList.toggle("show");
  }
   function myFunction2() {
   var popup = 
   document.getElementById("myPopup2");
   popup.classList.toggle("show");
  }
  </script>

票数 0
EN

Stack Overflow用户

发布于 2018-07-20 12:20:23

这可以通过仅使用javascript添加点击事件来完成。使用此功能,您可以添加尽可能多的弹出元素。

代码语言:javascript
复制
  var popupArr = document.getElementsByClassName("popup");
  for (var index in popupArr) {
      popupArr[index].onclick = function(ev) {
          var popup = ev.target.children[0];
          popup.classList.toggle("show");
      }
  }
代码语言:javascript
复制
/* Popup container */
 .popup {
 position: relative;
 display: inline-block;
 cursor: pointer;
 }

 /* The actual popup (appears on top) */
 .popup .popuptext {
 visibility: hidden;
 width: 160px;
 background-color: #555;
 color: #fff;
 text-align: center;
 border-radius: 6px;
 padding: 8px 0;
 position: absolute;
 z-index: 1;
 bottom: 125%;
 left: 50%;
 margin-left: -80px;
 }

 /* Popup arrow */
 .popup .popuptext::after {
 content: "";
 position: absolute;
 top: 100%;
 left: 50%;
 margin-left: -5px;
 border-width: 5px;
 border-style: solid;
 border-color: #555 transparent transparent 
 transparent;
 }

 /* Toggle this class when clicking on the popup 
 container (hide and show the popup) */
 .popup .show {
 visibility: visible;
 -webkit-animation: fadeIn 1s;
 animation: fadeIn 1s
 }
代码语言:javascript
复制
<div class="popup">Click 
me!
  <span class="popuptext" >Popup 
   text...</span>
</div>

<div class="popup">Click 
me2!
  <span class="popuptext" >Popup 
   text...2</span>
 </div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51434277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档