Search code examples
javascripthtmlcssmaterial-designmaterialize

MATERIALCSS: FABs button trigger nothing happens


I am using design Material Design. I choose to use used FABs in Card to display content composed of different types of objects. Now, I try to add modal bottom sheet style with it and use the floating action button as a trigger of the modal, but nothing appear below. My codes are the following below:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <!-- Compiled and minified CSS -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.1/css/materialize.min.css">
    <!-- Compiled and minified JavaScript -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.1/js/materialize.min.js"></script>   
    <!--Import Google Icon Font-->
    <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <!--Import jQuery before materialize.js-->
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>    
</head>
<body>
    <div class="row">
        <div class="col s12 m4 l4">
          <div class="card">
            <div class="card-image">
              <img src="http://materializecss.com/images/sample-1.jpg">

              <a class="btn-floating btn-large halfway-fab  light-green accent-3" href="#modal2"><i class="material-icons">add</i></a>
            </div>
            <div class="card-content">
                <span class="card-title">Card Title</span>
              <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
            </div>
          </div>
        </div>
    </div>
    <!-- Modal Structure -->
    <div id="modal2" class="modal bottom-sheet">
        <div class="modal-content">
          <h4>Modal Header</h4>
          <p>A bunch of text</p>
        </div>
        <div class="modal-footer">
          <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Agree</a>
        </div>
    </div>   
</body>
</html>

<script type="text/javascript">
    $(document).ready(function() {
        $('.modal').modal();
    });
</script>

Solution

  • jquery-2.1.1.min.js library must be added before than materialize.min.js library.

    Try this code;

    $(document).ready(function() {
        $('.modal').modal();
    });
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <!--Import Google Icon Font-->
        <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
        <!--Import jQuery before materialize.js-->
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <!-- Compiled and minified CSS -->
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.1/css/materialize.min.css">
        <!-- Compiled and minified JavaScript -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.1/js/materialize.min.js"></script>   
    </head>
    <body>
        <div class="row">
            <div class="col s12 m4 l4">
              <div class="card">
                <div class="card-image">
                  <img src="http://materializecss.com/images/sample-1.jpg">
    
                  <a class="btn-floating btn-large halfway-fab  light-green accent-3" href="#modal2"><i class="material-icons">add</i></a>
                </div>
                <div class="card-content">
                    <span class="card-title">Card Title</span>
                  <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
                </div>
              </div>
            </div>
        </div>
        <!-- Modal Structure -->
        <div id="modal2" class="modal bottom-sheet">
            <div class="modal-content">
              <h4>Modal Header</h4>
              <p>A bunch of text</p>
            </div>
            <div class="modal-footer">
              <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Agree</a>
            </div>
        </div>   
    </body>
    </html>