javascript模态不起作用

时间:2016-10-04 16:36:54

标签: javascript html css

我正在使用支架工具来研究javascript。 当我看到预览时,我可以看到一个按钮。但是,即使我多次单击按钮并更改了代码,也没有任何反应。莫代尔没有出现。 我知道关于模态有很多类似的问题。 我读了一些答案,但我无法解决这个问题。 有人可以告诉我如何解决这个问题吗?

<!DOCTYPE html > 
<html>
<head>

     <link rel="stylesheet" href="modal.css">
</head>
<body>
   <script type="text/javascript">
    // Get the modal
    var modal = document.getElementById('myModal');

    // Get the button that opens the modal
    var btn = document.getElementById("myBtn");

    // Get the <span> element that closes the modal
     var span = document.getElementsByClassName("close")[0];

    // When the user clicks on the button, open the modal 
    btn.onclick = function() {
    modal.style.display = "block";
     }

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

     // When the user clicks anywhere outside of the modal, close it
    window.onclick = function(event) {
    if (event.target == modal) {
    modal.style.display = "none";
      }
    }
    </script>

     <!-- Trigger/Open The Modal -->
    <button id="myBtn">Open Modal</button>

     <!-- The Modal -->
     <div id="myModal" class="modal">

    <!-- Modal content -->
    <div class="modal-content">
     <span class="close">x</span>
       <p>Some text in the Modal..</p>
    </div>
</div>

2 个答案:

答案 0 :(得分:0)

浏览器正在从上到下加载页面。因此,您的脚本在加载html元素之前运行,但无法找到它们。

解决方案是在关闭var random = runner[Math.floor(Math.random() * runner.length)]; document.getElementById("message").innerHTML = random; var filtered = [12, 5, 8, 130, 44].filter(function(value){ return value === random; ); 代码之前放置class MyPeppers < ActiveRecord::Base acts_as_a_ferret() if Rails.env.production? end 代码,但是在所有页面元素之后。

有关此主题的更多信息: Where is the best place to put tags in HTML markup?

答案 1 :(得分:0)

您的Javascript在加载之前正在寻找您的按钮和模态。您需要使用onload事件,使用jQuery准备文档,或者在模式html之后放置Javascript。我在你的btn点击事件中放了一个控制台日志,这样你就可以通过查看开发工具控制台来了解它。

prepareForSegue(segue:sender:)