首页 > 解决方案 > Materialise sidenav 不会出现

问题描述

我正在尝试学习 Materialise,但是当我单击菜单按钮时,我无法让 sidenav 出现。我认为这与初始化程序有关。

    <body>
  <nav>
    <div class="nav-wrapper">
      <a href="#!" class="brand-logo">Logo</a>
      <a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>
      <ul class="right hide-on-med-and-down">
        <li><a href="sass.html">Sass</a></li>
        <li><a href="badges.html">Components</a></li>
        <li><a href="collapsible.html">Javascript</a></li>
        <li><a href="mobile.html">Mobile</a></li>
      </ul>
    </div>
  </nav>

  <ul class="sidenav" id="mobile-demo">
    <li><a href="sass.html">Sass</a></li>
    <li><a href="badges.html">Components</a></li>
    <li><a href="collapsible.html">Javascript</a></li>
    <li><a href="mobile.html">Mobile</a></li>
  </ul>

html正文底部的脚本标签:

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
  <script>
  $(document).ready(function(){
    $('.sidenav').sidenav();
  });
  </script>

标签: javascripthtmlcssmaterialize

解决方案


它没有初始化 M,Materialize 的全局对象。我从 CDN 更改了 Materialize 的版本并运行了它。我最终不需要 jQuery。

<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/js/materialize.min.js"></script>
<script>
  const sideNav = document.querySelector('.sidenav');
  M.Sidenav.init(sideNav, {});
</script>

推荐阅读