web-dev-qa-db-fra.com

Puis-je vérifier si Bootstrap Modal montré / caché?

Puis-je vérifier si Bootstrap Modal actuellement affiché/masqué par programmation?

Comme bool a = if("#myModal").shown();?

J'ai besoin de vrai/faux

62
user2736812
alert($('#myModal').hasClass('in'));

Il retournera vrai si modal est ouvert

125
user2663434

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

25
vipulsharma

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
}
20
ctf0

Quand modal se cache? nous vérifions comme ceci:

$('.yourmodal').on('hidden.bs.modal', function () {
    // do something here
})
4
Kamlesh

Utilisez hasClass('in'). Il retournera true si modal est dans l'état OPEN.

Par exemple:

if($('.modal').hasClass('in')){
   //Do something here
}
3
Pehlaj

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.

3
Sakata Gintoki

Avec Bootstrap 4:

if ($('#myModal').hasClass('show')) {
    alert("Modal is visible")
}
1
NaturalBornCamper
if($('.modal').hasClass('in')) {
    alert($('.modal .in').attr('id')); //ID of the opened modal
} else {
    alert("No pop-up opened");
}
1
Jaykishan

Pour moi ça marche

 
 if ($ ("# monModal"). css ("display")! = 'aucun' && $ ("# monModal"). css ("visibilité")! = 'caché') 
 
 alert("modal shown");
1