J'utilise la bibliothèque Twitter Bootstrap sur un nouveau projet et je souhaite qu'une partie de la page soit actualisée et récupérée les dernières données json sur la fermeture modale. Je ne vois cela nulle part dans la documentation. Quelqu'un peut-il me le signaler ou suggérer une solution.
Deux problèmes avec l'utilisation des méthodes documentées
$('#my-modal').bind('hide', function () {
// do something ...
});
J'attache déjà une classe "hide" au modal pour qu'il ne s'affiche pas au chargement de la page, ce qui chargerait deux fois
même si je supprime la classe hide et que je définis l'ID de l'élément display:none
et que j'ajoute console.log("THE MODAL CLOSED");
à la fonction ci-dessus lorsque je clique sur close, rien ne se passe.
la source
data-dismiss="modal"
(comme un bouton de fermeture), mais cela ne fonctionne pas lorsque je clique sur la zone de fond noir entourant le modal. Le modal est ignoré, mais il ne peut pas être rouvert tant que la page n'est pas actualisée. J'ai essayé les deux'hidden.bs.modal'
et'hide.bs.modal'
en vain.$('#myModal').modal({ backdrop: 'static', keyboard: false });
cette façon, le modal ne se fermera pas lorsque vous cliquez sur la zone grise, ni lorsque vous appuyez sur la touche Echap.Bootstrap 4
Voir ce JSFiddle pour un exemple de travail:
https://jsfiddle.net/6n7bg2c9/
Voir la section Modal Events des documents ici:
https://getbootstrap.com/docs/4.3/components/modal/#events
la source
Au démarrage de Bootstrap 3 ( modification: toujours la même dans Bootstrap 4 ), il existe 2 instances dans lesquelles vous pouvez déclencher des événements, à savoir:
1. Au début de l'événement modal de "masquage"
2. Lorsque l'événement "masquer" modal est terminé
Réf: http://getbootstrap.com/javascript/#js-events
la source
Au lieu de "live", vous devez utiliser l'événement "on", mais l'affecter à l'objet document:
Utilisation:
la source
la source
Bootstrap fournit des événements que vous pouvez connecter au modal , comme si vous voulez déclencher un événement lorsque le modal a fini d'être caché à l'utilisateur, vous pouvez utiliser un événement hidden.bs.modal comme celui-ci
Vérifiez un violon de travail ici en savoir plus sur les méthodes modales et les événements ici dans la documentation
la source
Bootstrap 4:
hide.bs.modal : cet événement est déclenché immédiatement lorsque la méthode d'instance hide a été appelée.
hidden.bs.modal : Cet événement est déclenché lorsque le modal a fini d'être caché à l'utilisateur (attendra la fin des transitions CSS).
la source
Je le ferais comme ça:
Le reste a déjà été écrit par d'autres. Je recommande également de lire la documentation: jquery - on method
la source
J'ai vu de nombreuses réponses concernant les événements d'amorçage, tels que ceux
hide.bs.modal
qui se déclenchent à la fermeture du modal.Il y a un problème avec ces événements: tous les popups dans le modal (popovers, info-bulles, etc.) déclencheront cet événement.
Il existe un autre moyen d'attraper l'événement à la fermeture d'un modal.
Bootstrap utilise la
in
classe lorsque le modal est ouvert. Il est très important d'utiliser l'hidden
événement, car la classein
est toujours définie lorsque l'événementhide
est déclenché.Cette solution ne fonctionnera pas dans IE8 car IE8 ne prend pas en charge le
:not()
sélecteur Jquery .la source
J'avais les mêmes problèmes que certains avec
Vous devez le placer en bas de la page, le placer en haut ne déclenche jamais l'événement.
la source
$("#myModal")
est invoqué, l'élément HTML avec un ID demyModal
besoins doit exister dans le DOM. Vous pourriez donc avoir ce code en haut de la page mais placé dans un$(document).on("ready", function(){ ... });
(ou une fonction similaire qui est appelée après que le DOM est rempli avec l'élément).si vous souhaitez déclencher une fonction à chaque clôture modale, vous pouvez utiliser cette méthode,
Vous n'avez donc pas besoin de spécifier les identifiants modaux à chaque fois.
la source