Модальное всплывающее окно начальной загрузки не закрывается

#javascript #jquery #html #twitter-bootstrap

#javascript #jquery #HTML #twitter-bootstrap

Вопрос:

Когда вы нажимаете «inloggen», всплывает модальное окно, и это здорово. Но когда вы заходите в реестр и обратно для входа в систему и обратно для регистрации и т.д., щелчок за пределами модального окна больше не закроет его.

Кто-нибудь знает о проблеме?
Я думаю, что это проблема с кодом JavaScript.

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" media="all">
  <link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet" media="all">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">


 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 <script src="assets/js/login-register.js" type="text/javascript"></script>
  <link rel="stylesheet" href="../css/opmaak.css">
   <script src="../js/main.js" type="text/javascript"></script>


<title>'T Shopkartje</title>

 <style>
  .modal-header, h4, .close {
    background-color: #5cb85c;
    color:white !important;
    text-align: center;
    font-size: 30px;
  }
  .modal-footer {
    padding: 15px;
    text-align: right;
    border-top: 1px solid #e5e5e5;
}
  </style>

<style>html,
body {
    height: 100%;
	 margin: 0;
	width: auto!important;
  	overflow-x: hidden!important;
	background-image:url('../images/achtergrond.png');
	scroll-behavior: smooth;
}

.carousel,
.item,
.active {
    height: 95%;
}

.container-fluid{
background-image:url('../images/achtergrond.png');
}

.carousel-inner {
  height: 100%;
  background: #000;
}

.carousel-caption{padding-bottom:80px;}

h2{font-size: 60px;}
p{padding:10px}

/* Background images are set within the HTML using inline CSS, not here */

.fill {
    width: 100%;
    height: 110%;
    background-position: center;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    background-size: cover;
    -o-background-size: cover;
    opacity:0.6;
}

.header {
  background-color: #f1f1f1;
  padding: 30px;
  text-align: center;
}

/**
 * Button
 */
.btn-transparent {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
}
.btn-transparent:hover {
  background-color: #fff;
}

.btn-rounded {
  border-radius: 70px;
}

.btn-large {
  padding: 11px 45px;
  font-size: 18px;
}
/**
 * Change animation duration
 */
.animated {
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
}
@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100px, 0, 0);
    transform: translate3d(100px, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100px, 0, 0);
    transform: translate3d(100px, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}
.footer {
    position: bottom;
    bottom: 0px;
    width: 100%;
    height: 55px;
	text-align: center !important;
    background-color: #f2f2f2;
	
	
}
</style>
</head>
<body>

<nav class="navbar-fixed navbar-white">
<div class="container-fluid">
  <div class="navbar-header">
  </div>
  <div>
    <ul class="nav navbar-nav navbar-right">
	  <li><a type="button" href="javascript: void(0)" id="btnlogin">Inloggen</a></li>
	  <li><a type="button" href="javascript: void(0)" id="btnlogon">Registreren</a></li>
    </ul>
  </div>
</div>
</nav>


  <!-- Modal -->
  <div class="modal fade" id="loginmodel" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header" style="padding:35px 50px;">
          <button type="button" class="close" data-dismiss="modal">amp;times;</button>
          <h4><span class="glyphicon glyphicon-lock"></span> Inloggen</h4>
        </div>
        <div class="modal-body" style="padding:40px 50px;">
          <form role="form">
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-envelope"></span> E-Mail</label>
              <input type="text" class="form-control" id="usrname" placeholder="Enter email">
            </div>
            <div class="form-group">
              <label for="psw"><span class="glyphicon glyphicon-eye-open"></span> Password</label>
              <input type="text" class="form-control" id="psw" placeholder="Enter password">
            </div>
            <div class="checkbox">
              <label><input type="checkbox" value="" checked>Remember me</label>
            </div>
              <button type="submit" class="btn btn-success btn-block"><span class="glyphicon glyphicon-off"></span> Inloggen</button>
          </form>
        </div>
        <div class="modal-footer">
          <button type="submit" class="btn btn-danger btn-default pull-left" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cancel</button>  
		  <p class="pp">Geen account? <button class="btn btn-light" id="btnlogonfromin">Registreren</button></p>
          <p class="pp"><button type="button" class="btn btn-light" id="btnlogin">Passwoord Vergeten?</button></p>
        </div>
      </div>
      
    </div>
  </div> 
</div>

 <!-- Modal2 -->
  <div class="modal fade" id="logonmodel" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header" style="padding:35px 50px;">
          <button type="button" class="close" data-dismiss="modal">amp;times;</button>
          <h4><span class="glyphicon glyphicon-lock"></span> Registreren</h4>
        </div>
        <div class="modal-body" style="padding:40px 50px;">
          <form role="form">
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-user"></span> Voornaam</label>
              <input type="text" class="form-control" id="voornm" placeholder="Enter Voornaam" required>
            </div>
			<div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-user"></span> Achternaam</label>
              <input type="text" class="form-control" id="achtrn" placeholder="Enter Achternaam" required>
            </div>
			<div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-envelope"></span> E-Mail</label>
              <input type="text" class="form-control" id="email" placeholder="Enter email" required>
            </div>
            <div class="form-group">
              <label for="psw"><span class="glyphicon glyphicon-eye-open"></span> Passwoord</label>
              <input type="text" class="form-control" id="psw" placeholder="Enter Passwoord" required>
            </div>
			<div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-bed"></span> Straat   Huisnummer</label>
              <input type="text" class="form-control" id="straat" placeholder="Straat   Huisnummer" required>
            </div>
			<div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-road"></span> Postcode   Stad</label>
              <input type="text" class="form-control" id="stad" placeholder="Postcode   Stad" required>
            </div>
			<div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-phone"></span> Telefoonnummer</label>
              <input type="text" class="form-control" id="numb" placeholder="Enter Telefoonnummer" required>
            </div>
              <button type="submit" class="btn btn-success btn-block"><span class="glyphicon glyphicon-off"></span> Registreren</button>
          </form>
        </div>
        <div class="modal-footer">
          <button type="submit" class="btn btn-danger btn-default pull-left" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cancel</button>  
		  <p class="pp">Heeft u al een account? <button type="button" class="btn btn-light" id="btnloginfromin">Inloggen</button></p>
        </div>
      </div>
      
    </div>
  </div> 
</div>
	
<script>
$(document).ready(function(){
  $("#btnlogin").click(function(){
    $("#loginmodel").modal();
  });
});

$(document).ready(function(){
  $("#btnlogon").click(function(){
    $("#logonmodel").modal();
  });
});

$("#btnloginfromin").on("click", function(){
    $("#logonmodel").modal("hide");
    $("#logonmodel").on("hidden.bs.modal",function(){
    $("#loginmodel").modal("show");
    });
});

$("#btnlogonfromin").on("click", function(){
    $("#loginmodel").modal("hide");
    $("#loginmodel").on("hidden.bs.modal",function(){
    $("#logonmodel").modal("show");
    });
});
</script>
	
	<script>
function ons()
{
     location.href = "ons.html";
} 
</script>
<script>
function shopkart()
{
     location.href = "shopkart.php";
} 
</script>
<script>
function contacteren()
{
     location.href = "contacteren.html";
} 
</script>
	
	<?php
	
	
	
	?>

</body>
</html>   

Комментарии:

1. Пожалуйста, опубликуйте соответствующий код, который открывает модальное окно, и код, который должен закрыть модальное окно. Ссылка на ваше перо великолепна и может даже понадобиться, если кому-то нужно глубоко погрузиться… но участников не следует заставлять заходить туда, чтобы выяснить, будут ли они участвовать или нет.

Ответ №1:

Вы привязали функцию обратного вызова к hidden.bs.modal , которая открывает модальное.

 ...
$("#loginmodel").modal("hide");
$("#loginmodel").on("hidden.bs.modal",function(){
  $("#logonmodel").modal("show");
});
...
  

В этом нет необходимости, и это приводит к бесконечному модальному открытию. Вам просто нужно вызвать modal('show') после modal('hide') .

 ...
$("#btnloginfromin").on("click", function() {
  $("#logonmodel").modal("hide");
  $("#loginmodel").modal("show");
});

$("#btnlogonfromin").on("click", function() {
  $("#loginmodel").modal("hide");
  $("#logonmodel").modal("show");
});
...
  

Фрагмент:

 $(document).ready(function() {
  $("#btnlogin").click(function() {
    $("#loginmodel").modal();
  });
});

$(document).ready(function() {
  $("#btnlogon").click(function() {
    $("#logonmodel").modal();
  });
});

$("#btnloginfromin").on("click", function() {
  $("#logonmodel").modal("hide");
  $("#loginmodel").modal("show");
});

$("#btnlogonfromin").on("click", function() {
  $("#loginmodel").modal("hide");
  $("#logonmodel").modal("show");
});

function ons() {
  location.href = "ons.html";
}

function shopkart() {
  location.href = "shopkart.php";
}

function contacteren() {
  location.href = "contacteren.html";
}  
 .modal-header,
h4,
.close {
  background-color: #5cb85c;
  color: white !important;
  text-align: center;
  font-size: 30px;
}

.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}

html,
body {
  height: 100%;
  margin: 0;
  width: auto!important;
  overflow-x: hidden!important;
  background-image: url('../images/achtergrond.png');
  scroll-behavior: smooth;
}

.carousel,
.item,
.active {
  height: 95%;
}

.container-fluid {
  background-image: url('../images/achtergrond.png');
}

.carousel-inner {
  height: 100%;
  background: #000;
}

.carousel-caption {
  padding-bottom: 80px;
}

h2 {
  font-size: 60px;
}

p {
  padding: 10px
}


/* Background images are set within the HTML using inline CSS, not here */

.fill {
  width: 100%;
  height: 110%;
  background-position: center;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  background-size: cover;
  -o-background-size: cover;
  opacity: 0.6;
}

.header {
  background-color: #f1f1f1;
  padding: 30px;
  text-align: center;
}


/**
 * Button
 */

.btn-transparent {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
}

.btn-transparent:hover {
  background-color: #fff;
}

.btn-rounded {
  border-radius: 70px;
}

.btn-large {
  padding: 11px 45px;
  font-size: 18px;
}


/**
 * Change animation duration
 */

.animated {
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
}

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100px, 0, 0);
    transform: translate3d(100px, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100px, 0, 0);
    transform: translate3d(100px, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}

.footer {
  position: bottom;
  bottom: 0px;
  width: 100%;
  height: 55px;
  text-align: center !important;
  background-color: #f2f2f2;
}  
 <!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" media="all">
  <link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet" media="all">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <script src="assets/js/login-register.js" type="text/javascript"></script>
  <link rel="stylesheet" href="../css/opmaak.css">
  <script src="../js/main.js" type="text/javascript"></script>


  <title>'T Shopkartje</title>


</head>

<body>

  <nav class="navbar-fixed navbar-white">
    <div class="container-fluid">
      <div class="navbar-header">
      </div>
      <div>
        <ul class="nav navbar-nav navbar-right">
          <li><a type="button" href="javascript: void(0)" id="btnlogin">Inloggen</a></li>
          <li><a type="button" href="javascript: void(0)" id="btnlogon">Registreren</a></li>
        </ul>
      </div>
    </div>
  </nav>


  <!-- Modal -->
  <div class="modal fade" id="loginmodel" role="dialog">
    <div class="modal-dialog">

      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header" style="padding:35px 50px;">
          <button type="button" class="close" data-dismiss="modal">amp;times;</button>
          <h4><span class="glyphicon glyphicon-lock"></span> Inloggen</h4>
        </div>
        <div class="modal-body" style="padding:40px 50px;">
          <form role="form">
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-envelope"></span> E-Mail</label>
              <input type="text" class="form-control" id="usrname" placeholder="Enter email">
            </div>
            <div class="form-group">
              <label for="psw"><span class="glyphicon glyphicon-eye-open"></span> Password</label>
              <input type="text" class="form-control" id="psw" placeholder="Enter password">
            </div>
            <div class="checkbox">
              <label><input type="checkbox" value="" checked>Remember me</label>
            </div>
            <button type="submit" class="btn btn-success btn-block"><span class="glyphicon glyphicon-off"></span> Inloggen</button>
          </form>
        </div>
        <div class="modal-footer">
          <button type="submit" class="btn btn-danger btn-default pull-left" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cancel</button>
          <p class="pp">Geen account? <button class="btn btn-light" id="btnlogonfromin">Registreren</button></p>
          <p class="pp"><button type="button" class="btn btn-light" id="btnlogin">Passwoord Vergeten?</button></p>
        </div>
      </div>

    </div>
  </div>

  <!-- Modal2 -->
  <div class="modal fade" id="logonmodel" role="dialog">
    <div class="modal-dialog">

      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header" style="padding:35px 50px;">
          <button type="button" class="close" data-dismiss="modal">amp;times;</button>
          <h4><span class="glyphicon glyphicon-lock"></span> Registreren</h4>
        </div>
        <div class="modal-body" style="padding:40px 50px;">
          <form role="form">
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-user"></span> Voornaam</label>
              <input type="text" class="form-control" id="voornm" placeholder="Enter Voornaam" required>
            </div>
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-user"></span> Achternaam</label>
              <input type="text" class="form-control" id="achtrn" placeholder="Enter Achternaam" required>
            </div>
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-envelope"></span> E-Mail</label>
              <input type="text" class="form-control" id="email" placeholder="Enter email" required>
            </div>
            <div class="form-group">
              <label for="psw"><span class="glyphicon glyphicon-eye-open"></span> Passwoord</label>
              <input type="text" class="form-control" id="psw" placeholder="Enter Passwoord" required>
            </div>
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-bed"></span> Straat   Huisnummer</label>
              <input type="text" class="form-control" id="straat" placeholder="Straat   Huisnummer" required>
            </div>
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-road"></span> Postcode   Stad</label>
              <input type="text" class="form-control" id="stad" placeholder="Postcode   Stad" required>
            </div>
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-phone"></span> Telefoonnummer</label>
              <input type="text" class="form-control" id="numb" placeholder="Enter Telefoonnummer" required>
            </div>
            <button type="submit" class="btn btn-success btn-block"><span class="glyphicon glyphicon-off"></span> Registreren</button>
          </form>
        </div>
        <div class="modal-footer">
          <button type="submit" class="btn btn-danger btn-default pull-left" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cancel</button>
          <p class="pp">Heeft u al een account? <button type="button" class="btn btn-light" id="btnloginfromin">Inloggen</button></p>
        </div>
      </div>

    </div>
  </div>


</body>

</html>