javascript - 我有 3 个 div,每个都有自己的主题,现在我想为每个 div 打开它的模式

标签 javascript jquery html css

到目前为止,我设法通过单击任何一个 div 打开一个模式。我怎样才能为一个 div 元素设置一个模态,也就是说,当我单击服务以打开服务模态时,以及当我单击即将打开模态时……等等……我还必须关闭每个打开时的模态...我不知道如何将每个 div 与其自己的模态连接起来。这是我的代码...

<div class="section">
      <div class="container">
        <div class="row">
          <div class="col-md-4 sector">
            <h3>Services</h3>
            <i class="fa fa-gear"></i>
            <div class="over">
              <span class="tooltiptext">Show more...</span>
            </div>
          </div>
          <div class="col-md-4 sector">
            <h3>About me</h3>
            <i class="fa fa-address-card-o"></i>
            <div class="over">
              <span class="tooltiptext">Show more...</span>
            </div>
          </div>

          <div class="col-md-4 sector">
            <h3>Contact</h3>
            <i class="fa fa-phone"></i>
            <div class="over">
              <span class="tooltiptext">Show more...</span>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="modal-container" id="myMod">
     <div class="modal-content">
          <span class="close">&times</span>
          <h1>Heading</h1>
          <p>Some text goes in here...</p>
     </div>
</div>
  <div class="showcase">
      <div class="container">
        <h1>Got Ideas?</h1>
        <p class="lead">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sed sem rhoncus urna iaculis faucibus. Pellentesque ultrices nibh ac imperdiet tincidunt. Donec hendrerit velit eros</p>
        <a href="about.html" class="btn btn-primary">Read More</a>
      </div>
    </div>

  <script type="text/javascript">
    // Get the button that opens the modal
     var myOver = document.getElementsByClassName('over');
     // Get modal to pass it to function
     var modal = document.getElementById('myMod');
     // get closing button
     var span = document.getElementsByClassName('close')[0];
     // Function to open the modal
     for(var i = 0; i<myOver.length; i++){
        myOver[i].addEventListener('click', function(){
         modal.style.display = 'block';
        });
     }


    // When the user clicks on <span> (x), close the modal
    span.onclick = function(){
    modal.style.display='none';
    }

  </script> 

最佳答案

您可以使用类似的命名方案,只需将后缀附加到被单击的对象的 ID 即可找到正确的文本,例如,让每个 span 元素都有一个对应于它们所用模式的 ID。例如 contact 然后点击事件监听器是

function(e) { //e is the event object event
   document.getElementById(e.target.id + "-modal").style.display = 'block'
}

现在将联系方式标识为“联系方式”,它应该很容易找到

至于关闭每个元素,只需遍历所有具有 modal-contain 类的元素,并在打开之前将它们的 display 设置为 none 新的

关于javascript - 我有 3 个 div,每个都有自己的主题,现在我想为每个 div 打开它的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393739/

相关文章:

php - 如何在 REST 请求中指定类型参数?

javascript - Coffeescript 语法无效

javascript - SlideToggle Div 动画

html - 为什么我在使用 Bootstrap 时会出现红线

javascript - Jquery UI,如何使可拖动始终恢复?

javascript - 我可以在单独的线程中运行 UIWebView 吗?

php - 需要一个带有一些附加功能的 JavaScript 色轮

jquery - 带有 Canvas 和图像响应的 Div

javascript - 滚动时保持粘性 div 具有相同的宽度

html - Safari 导致意外的 div 偏移