2017-06-25 6 views
0

Ich habe ein Problem mit Modalverben in Bootsrap vor kurzem mit 3.Mehr als ein Modalverben in Schleife stecken, Bootstrap

ich auf einem Test-Website gerade arbeite (nicht alles, was ich tatsächlich ins Netz gestellt würde) und ich habe 3 Bilder (jeweils in einem col-md-4) nebeneinander, und ich habe vor, einen Knopf unter jedem Bild zentriert zu haben, der für ein Modal angeklickt werden kann, um mit mehr Info aufzutreten.

Ich habe das erste Modal eingerichtet, das perfekt funktionierte.
Als ich jedoch die zweite hinzugefügt habe, habe ich festgestellt, dass wenn man auf einen der beiden Knöpfe klickt, beide Modale übereinander liegen (der zweite zuerst) und wenn man "Zurück nach Hause" drückt, geht es zum anderes Modal.

Sie können nur nach Hause zurückkehren, indem Sie das "X" ein- oder zweimal drücken.

Ich bin fast sicher, dass dies aufgrund meiner JavaScript ist in <head> sehr falsch sein, aber ich bin nicht sehr gut im JS und habe keine Ahnung, was ich falsch gemacht habe ...

Hier ist der HTML, so dass Sie

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>space</title> 
    <link rel="stylesheet" href="css/bootstrap.min.css"> 
    <link rel="stylesheet" href="css/style.css"> 
    <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> 
    <script type="text/javascript" src="js/bootstrap.min.js"></script> 
    <link href="https://fonts.googleapis.com/css?family=Lato:100,300" rel="stylesheet"> 
    <script type="text/javascript"> 
     $(function(){ 
     $(".btn").click(function(){ 
      $("#chimechoModal").modal('show'); 
     }); 
     }); 
    </script> 
    <script type="text/javascript"> 
     $(function(){ 
     $(".btn").click(function(){ 
      $("#eeveeModal").modal('show'); 
     }); 
     }); 
    </script> 
    </head> 
    <body> 
    <div class="container custom-container"> 
     <div class="row"> 
     <div class="col-xs-12" style="height:15px;"></div> 
     </div> 
     <div class="row"> 
     <div class="col-md-6"> 
      <img src="images/logo.png" class="img-responsive"> 
     </div> 
     <div class="col-md-6 text-right text-uppercase"> 
      <h1>Mini Pokedex</h1> 
      <h4>Created by spaceman1980</h4> 
     </div> 
     </div> 
     <div class="row"> 
     <hr> 
     </div> 
     <div class="row"> 
     <div class="col-md-4"> 
      <img class="img-responsive center-block" src="images/chimecho.png" style="width: 100%; height: auto;">  
     </div> 
     <div class="col-md-4"> 
      <img class="img-responsive center-block" src="images/eevee.png" style="width: 100%; height: auto;"> 
     </div> 
     <div class="col-md-4"> 
      <img class="img-responsive center-block" src="images/james.jpg" style="width: 100%; height: auto;"> 
     </div> 
     </div> 
     <div class="row"> 
     <div class="col-md-4 text-center"> 
      <!-- Button trigger modal --> 
      <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#chimecho"> 
      Pokedex Entry 
      </button> 

      <!-- Modal --> 
      <div class="modal fade" id="chimechoModal" tabindex="-1" role="dialog" aria-labelledby="chimechoLabel" aria-hidden="true"> 
      <div class="modal-dialog" role="document"> 
       <div class="modal-content"> 
       <div class="modal-header"> 
        <div class="row"> 
        <div class="col-md-6 text-left"> 
         <h5 class="modal-title" id="chimechoLabel">The Wind Chime Pokemon</h5> 
        </div> 
        <div class="col-md-6 text-right"> 
         <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
         <span aria-hidden="true">&times;</span> 
         </button> 
        </div> 
        </div> 
       </div> 
       <div class="modal-body"> 
        <h5> 
        Chimecho makes its cries echo inside its hollow body. When this Pokémon becomes enraged, its cries result in ultrasonic waves that have the power to knock foes flying. 
        </h5> 
       </div> 
       <div class="modal-footer"> 
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Back to home</button> 
       </div> 
       </div> 
      </div> 
      </div> 
     </div> 
     <div class="col-md-4 text-center"> 
      <!-- Button trigger modal --> 
      <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#eevee"> 
      Pokedex Entry 
      </button> 

      <!-- Modal --> 
      <div class="modal fade" id="eeveeModal" tabindex="-1" role="dialog" aria-labelledby="eeveeLabel" aria-hidden="true"> 
      <div class="modal-dialog" role="document"> 
       <div class="modal-content"> 
       <div class="modal-header"> 
        <div class="row"> 
        <div class="col-md-6 text-left"> 
         <h5 class="modal-title" id="eeveeLabel">The Evolution Pokemon</h5> 
        </div> 
        <div class="col-md-6 text-right"> 
         <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
         <span aria-hidden="true">&times;</span> 
         </button> 
        </div> 
        </div> 
       </div> 
       <div class="modal-body"> 
        <h5> 
        Eevee has an unstable genetic makeup that suddenly mutates due to the environment in which it lives. Radiation from various stones causes this Pokémon to evolve. 
        </h5> 
       </div> 
       <div class="modal-footer"> 
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Back to home</button> 
       </div> 
       </div> 
      </div> 
      </div> 
     </div> 

     </div> 
    </div> 
    </body> 
</html> 
+0

Wenn es etwas mit Ihrem JS nicht stimmt, können Sie bitte den Code angeben? Oder noch besser, die ganze Website auf einem JSFiddle? – InvincibleM

Antwort

0

1) Auch wenn Sie Inline-Javascript verwenden, gibt es keine Notwendigkeit, den <script> Tag zweimal

2) Diese Zeile im Code zu definieren, sagt, dass, wenn ein Element in Ihr DOM mit der Klasse 'btn' wird angeklickt, es wird eine Funktion ausgeführt (öffnen Sie in Ihrem Fall ein Modal). Sie hören beide Klickereignisse der 'btn'-Elemente.

Sie können jeder Schaltfläche für jeden Modaltyp eine andere Klasse zuweisen. Zum Beispiel

<script type="text/javascript"> 

    <button type="button" class="btn btn-primary btn-chimecho" data-toggle="modal" data-target="#chimecho"> 

    <button type="button" class="btn btn-primary btn-eevee" data-toggle="modal" data-target="#eevee"> 


    $(function(){ 
     $(".btn-chimecho").click(function(){ 
      $("#chimechoModal").modal('show'); 
     }); 
     $(".btn-eevee").click(function(){ 
      $("#eeveeModal").modal('show'); 
     }); 

    }); 

</script> 
+0

Vielen Dank! Das hilft wirklich –

+0

Es funktionierte perfekt jetzt! –

0

Es ist, weil Sie .btn (auf beiden Tasten teilten eine gemeinsame Klasse) verwenden die modale auslösen: kann mein Werk inspizieren. Wenn Sie also auf eine beliebige .btn klicken, werden beide Modale ausgelöst.

fügen Sie entweder eine Klasse/id oder verwenden Sie das data-target Attribut auf dem Click-Handler den entsprechenden modalen abzufeuern, oder weil Ihre Schaltfläche direkt vor dem modalen Element in Ihrem HTML ist, können Sie nur einen einzigen Klick-Handler mit $('.btn') verwenden und feuern Sie das Modal über $(this).next().modal().

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<!DOCTYPE html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <title>space</title> 
 
    <link rel="stylesheet" href="css/bootstrap.min.css"> 
 
    <link rel="stylesheet" href="css/style.css"> 
 
    <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> 
 
    <script type="text/javascript" src="js/bootstrap.min.js"></script> 
 
    <link href="https://fonts.googleapis.com/css?family=Lato:100,300" rel="stylesheet"> 
 
    <script type="text/javascript"> 
 
    $(function() { 
 
     $(".btn").on('click',function() { 
 
     $(this).next().modal("show"); 
 
     }); 
 
    }); 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <div class="container custom-container"> 
 
    <div class="row"> 
 
     <div class="col-xs-12" style="height:15px;"></div> 
 
    </div> 
 
    <div class="row"> 
 
     <div class="col-md-6"> 
 
     <img src="images/logo.png" class="img-responsive"> 
 
     </div> 
 
     <div class="col-md-6 text-right text-uppercase"> 
 
     <h1>Mini Pokedex</h1> 
 
     <h4>Created by spaceman1980</h4> 
 
     </div> 
 
    </div> 
 
    <div class="row"> 
 
     <hr> 
 
    </div> 
 
    <div class="row"> 
 
     <div class="col-md-4"> 
 
     <img class="img-responsive center-block" src="images/chimecho.png" style="width: 100%; height: auto;"> 
 
     </div> 
 
     <div class="col-md-4"> 
 
     <img class="img-responsive center-block" src="images/eevee.png" style="width: 100%; height: auto;"> 
 
     </div> 
 
     <div class="col-md-4"> 
 
     <img class="img-responsive center-block" src="images/james.jpg" style="width: 100%; height: auto;"> 
 
     </div> 
 
    </div> 
 
    <div class="row"> 
 
     <div class="col-md-4 text-center"> 
 
     <!-- Button trigger modal --> 
 
     <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#chimecho"> 
 
         Pokedex Entry 
 
        </button> 
 

 
     <!-- Modal --> 
 
     <div class="modal fade" id="chimechoModal" tabindex="-1" role="dialog" aria-labelledby="chimechoLabel" aria-hidden="true"> 
 
      <div class="modal-dialog" role="document"> 
 
      <div class="modal-content"> 
 
       <div class="modal-header"> 
 
       <div class="row"> 
 
        <div class="col-md-6 text-left"> 
 
        <h5 class="modal-title" id="chimechoLabel">The Wind Chime Pokemon</h5> 
 
        </div> 
 
        <div class="col-md-6 text-right"> 
 
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
 
               <span aria-hidden="true">&times;</span> 
 
              </button> 
 
        </div> 
 
       </div> 
 
       </div> 
 
       <div class="modal-body"> 
 
       <h5> 
 
             Chimecho makes its cries echo inside its hollow body. When this Pokémon becomes enraged, its cries result in ultrasonic waves that have the power to knock foes flying. 
 
            </h5> 
 
       </div> 
 
       <div class="modal-footer"> 
 
       <button type="button" class="btn btn-secondary" data-dismiss="modal">Back to home</button> 
 
       </div> 
 
      </div> 
 
      </div> 
 
     </div> 
 
     </div> 
 
     <div class="col-md-4 text-center"> 
 
     <!-- Button trigger modal --> 
 
     <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#eevee"> 
 
         Pokedex Entry 
 
        </button> 
 

 
     <!-- Modal --> 
 
     <div class="modal fade" id="eeveeModal" tabindex="-1" role="dialog" aria-labelledby="eeveeLabel" aria-hidden="true"> 
 
      <div class="modal-dialog" role="document"> 
 
      <div class="modal-content"> 
 
       <div class="modal-header"> 
 
       <div class="row"> 
 
        <div class="col-md-6 text-left"> 
 
        <h5 class="modal-title" id="eeveeLabel">The Evolution Pokemon</h5> 
 
        </div> 
 
        <div class="col-md-6 text-right"> 
 
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
 
               <span aria-hidden="true">&times;</span> 
 
              </button> 
 
        </div> 
 
       </div> 
 
       </div> 
 
       <div class="modal-body"> 
 
       <h5> 
 
             Eevee has an unstable genetic makeup that suddenly mutates due to the environment in which it lives. Radiation from various stones causes this Pokémon to evolve. 
 
            </h5> 
 
       </div> 
 
       <div class="modal-footer"> 
 
       <button type="button" class="btn btn-secondary" data-dismiss="modal">Back to home</button> 
 
       </div> 
 
      </div> 
 
      </div> 
 
     </div> 
 
     </div> 
 

 
    </div> 
 
    </div> 
 
</body> 
 

 
</html>