初始化 Javascript 模型如何在 Materialise Css 中工作?

How Does Initalizing a Javascript Modal Work in Materializecss?

我看到了其他答案,但我仍然不明白初始化 javascript 是什么意思以及我应该如何将 javascript 部分添加到我的 HTML 页面?如果我想在我的 HTML 页面中包含此模式:

 <!-- Modal Trigger -->
  <a class="waves-effect waves-light btn modal-trigger" href="#modal1">Modal</a>

  <!-- Modal Structure -->
  <div id="modal1" class="modal">
    <div class="modal-content">
      <h4>Modal Header</h4>
      <p>A bunch of text</p>
    </div>
    <div class="modal-footer">
      <a href="#!" class="modal-close waves-effect waves-green btn-flat">Agree</a>
    </div>
  </div>

有人告诉我需要先使用以下代码对其进行初始化:

$(document).ready(function(){
  // the "href" attribute of .modal-trigger must specify the modal ID that wants to be triggered
  $('.modal').modal();
});

如果我将这个(javascript 部分)添加到 material.js 的末尾,它没有任何效果。如果我将它添加到 HTML 页面并像这样使用它:

<script>
    $(document).ready(function(){
          // the "href" attribute of .modal-trigger must specify the modal ID that wants to be triggered
          $('.modal').modal();
        });
</script>

您可以使用常规 JavaScript 来初始化它,而不是您正在使用的 jQuery:

M.Modal.init(document.getElementById('modal1'));

您可以将该代码放在 <script> 标记中或包含一个 .js 文件,但请确保您在模态 <div> 和 Materialize 源代码下方这样做。

完整代码如下所示:

<!DOCTYPE html>
<html>
    <head>
        <title>Modal test</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">   
    </head>
    <body>
   <!-- Modal Trigger -->
  <a class="waves-effect waves-light btn modal-trigger" href="#modal1">Modal</a>

  <!-- Modal Structure -->
    <div id="modal1" class="modal">
        <div class="modal-content">
            <h4>Modal Header</h4>
            <p>A bunch of text</p>
        </div>
        <div class="modal-footer">
            <a href="#!" class="modal-close waves-effect waves-green btn-flat">Agree</a>
        </div>
    </div>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
    </body>
    <script>
         M.Modal.init(document.getElementById('modal1'));
    </script>
</html>