Puis-je vérifier si Bootstrap Modal actuellement affiché/masqué par programmation?
Comme bool a = if("#myModal").shown();
?
J'ai besoin de vrai/faux
alert($('#myModal').hasClass('in'));
Il retournera vrai si modal est ouvert
La meilleure méthode est donnée dans la documentation
$('#myModal').on('shown.bs.modal', function () {
// will only come inside after the modal is shown
});
pour plus d'informations, consultez http://getbootstrap.com/javascript/#modals
sa une vieille question mais de toute façon voici quelque chose que j'ai utilisé incase quelqu'un cherchait la même chose
if (!$('#myModal').is(':visible')) {
// if modal is not shown/visible then do something
}
Quand modal se cache? nous vérifions comme ceci:
$('.yourmodal').on('hidden.bs.modal', function () {
// do something here
})
Utilisez hasClass('in')
. Il retournera true si modal est dans l'état OPEN
.
Par exemple:
if($('.modal').hasClass('in')){
//Do something here
}
De manière officielle:
> ($("element").data('bs.modal') || {})._isShown // Bootstrap 4
> ($("element").data('bs.modal') || {}).isShown // Bootstrap <= 3
{}
Est utilisé pour éviter le cas où modal n'est pas encore ouvert (il retourne undefined
). Vous pouvez également lui attribuer une valeur égale à {isShown: false}
Pour la conserver plus logique.
Avec Bootstrap 4:
if ($('#myModal').hasClass('show')) {
alert("Modal is visible")
}
if($('.modal').hasClass('in')) {
alert($('.modal .in').attr('id')); //ID of the opened modal
} else {
alert("No pop-up opened");
}
Pour moi ça marche
if ($ ("# monModal"). css ("display")! = 'aucun' && $ ("# monModal"). css ("visibilité")! = 'caché')
alert("modal shown");