J'utilise bootstrap4 alpha 6 modal, je reçois:
Error: Modal is transitioning
Cela se produit lorsque j'essaie de re-déclencher le même modal avec des données dynamiques via la fonction JavaScript comme suit:
function openModal(title, text) {
$('.modal-title').text(title);
$('.modal-body p').text(text);
$('#modalAlert').modal('show');
}
J'ai essayé d'utiliser la fonction setTimeout, mais je n'ai pas fonctionné comme dans cet article: https://github.com/twbs/bootstrap/issues/21687
Aucune suggestion?
La solution la plus rapide consiste à supprimer la classe modale 'fade' qui génère cette erreur. Il semble que ce soit un problème connu de Bootsrap v6 qui sera résolu dans une prochaine version.
Voir ici
A travaillé avec la suppression de fade
de la classe parent div.
Code modal final ( Ajouter ici pour la postérité ):
HTML
<div class="modal loadingModal" id="applemodal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-body">
<div class="row">
<div class="col-md-6">
</div>
<div class="col-md-6">
<img src="ico/4.svg">
</div>
</div>
</div>
</div>
</div>
JS
$.ajax({
type: "GET",
url: "/getTimeline",
data: {
'dateTime': selected
},
async: true,
beforeSend: function () {
$('#applemodal').modal({
backdrop: 'static',
keyboard: false
});
},
success: function(data) {
$('#applemodal').modal('toggle');
}
});
j'utilise aussi bootstrap 4 modal, ma solution;
$(document).on('show.bs.modal', '.modal', function (event) {
var zIndex = 1040 + (10 * $('.modal:visible').length);
$(this).css('z-index', zIndex);
setTimeout(function() {
$('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
}, 0);
});
Commencez par ouvrir le modal, puis essayez de trouver les éléments DOM contenus dans le modal (par exemple, $('.modal-title')
et $('.modal-body p')
).
Changer l'ordre d'exécution de votre fonction peut fonctionner:
function openModal(title, text) {
$('#modalAlert').modal('show');
$('.modal-title').text(title);
$('.modal-body p').text(text);
}
Enfin, assurez-vous que modal est ouvert/visible à l’écran lorsque vous accédez au HTML contenu dans le modal.
Définissez votre type de bouton = 'submit' sur type = 'button'