web-dev-qa-db-fra.com

Comment ajouter un événement après avoir fermé la fenêtre modale?

J'ai du code modal:

    <-- Button to trigger modal -->
<div id="result"></div>
<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>

<-- Modal -->
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Modal header</h3>
  </div>
  <div class="modal-body">
    <p>One fine body…</p>
  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
  </div>
</div>

Et j'ai du code quand devrait être après la fermeture de la fenêtre Moal:

$('#result').html('yes,result');

Dites-moi s'il vous plaît comment faire en fermant la fenêtre modale (fermer ou masquer) exécuté un deuxième code?

21
Leo Loki

Je trouve la réponse. Merci à tous mais bonne réponse ensuite:

$("#myModal").on("hidden", function () {
  $('#result').html('yes,result');
});

Événements ici http://bootstrap-ru.com/javascript.php#modals

[~ # ~] upd [~ # ~]

Pour Bootstrap 3.x doit être utilisé hidden.bs.modal :

$("#myModal").on("hidden.bs.modal", function () {
  $('#result').html('yes,result');
});
26
Leo Loki

Si vous utilisez la version 3.x de Bootstrap, la bonne façon de procéder est maintenant:

$('#myModal').on('hidden.bs.modal', function (e) {
  // do something...
})

Faites défiler jusqu'à la section des événements pour en savoir plus.

http://getbootstrap.com/javascript/#modals-usage

Cela semble rester inchangé chaque fois que la version 4 sort ( http://v4-alpha.getbootstrap.com/components/modal/#events ), mais si c'est le cas, je serai sûr de mettre à jour ce poster avec les informations pertinentes.

53
MattD

Peu de réponses qui peuvent être utiles, surtout si vous avez du contenu dynamique.

$('#dialogueForm').live("dialogclose", function(){
   //your code to run on dialog close
});

Ou, lors de l'ouverture du modal, rappelez-vous.

$( "#dialogueForm" ).dialog({
              autoOpen: false,
              height: "auto",
              width: "auto",
              modal: true,
                my: "center",
                at: "center",
                of: window,
              close : function(){
                  // functionality goes here
              }  
              });
2
PodTech.io
$('.close').click(function() {
  //Code to be executed when close is clicked
  $('#result').html('yes,result');
});
0
Huy