J'ai une boîte de dialogue modale bootstrap que je veux afficher initialement, puis lorsque l'utilisateur clique sur la page, elle disparaît. J'ai les éléments suivants:
$(function () {
$('#modal').modal(toggle)
});
<div class="modal" id='modal'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Error:</h3>
</div>
<div class="modal-body">
<p>Please correct the following errors:</p>
</div>
</div>
</div>
Le modal s'affiche initialement, mais il ne se ferme pas lorsque vous cliquez dessus en dehors du modal. De plus, la zone de contenu n'est pas grisée. Comment puis-je afficher le modal initialement, puis le fermer après que l'utilisateur a cliqué en dehors de la zone? Et comment faire pour que l'arrière-plan soit grisé comme dans la démo?
$("#yourModal").modal()
ou$('.modal').modal()
?Réponses:
Mettez
modal('toggle')
au lieu demodal(toggle)
la source
pour fermer le modal bootstrap, vous pouvez passer 'hide' comme option à la méthode modale comme suit
Veuillez jeter un œil au violon de travail ici
bootstrap fournit également des événements que vous pouvez connecter à la fonctionnalité modale , comme si vous voulez déclencher un événement lorsque le modal a fini d'être caché à l'utilisateur, vous pouvez utiliser l' événement hidden.bs.modal , vous pouvez en savoir plus sur les méthodes et événements modaux ici dans Documentation
Si aucune des méthodes ci-dessus ne fonctionne, donnez un identifiant à votre bouton de fermeture et déclenchez un clic sur le bouton de fermeture.
la source
toggle
conserve la superposition et n'est pas une solution. Vous devez toujours utiliser soitshow
ouhide
.ou
devrait marcher.
Mais si rien d'autre ne fonctionne, vous pouvez appeler directement le bouton de fermeture modale:
la source
$('#modal').modal('hide')
mais je peux le fermer en utilisant$('#modal').modal('toggle')
mais qui affiche une barre de défilement verticale après la fermeture. Donc, pour moi, cela$('#modal').hide()
fonctionnait parfaitement, mais je veux savoir si cela créerait des problèmes? Et je code à l'intérieur,$('#modal .close').click()
donc je ne pense pas que je pourrais l'utiliser pour fermer le modal.cela a fonctionné pour moi:
utiliser ce lien modal fermer
la source
L'exécution de cet appel via la classe
($(".my-modal"))
ne fonctionnera pas.la source
Essaye ça
la source
celui-ci est assez bon et il fonctionne également en angulaire 2
la source
$('#modal').modal('toggle');
qui n'a aucun effet.Mes cinq cents sur celui-ci, c'est que je ne veux pas avoir à cibler le modal bootstrap avec un identifiant et vu qu'il ne devrait y avoir qu'un seul modal à la fois, ce qui suit devrait être assez suffisant pour supprimer le modal car le basculement pourrait être dangereux :
la source
<body>
, ont des classes ajoutées qui devraient également être annulées. La meilleure réponse est d'utiliser la'hide'
méthode.Dans certaines circonstances, une erreur de frappe pourrait être la cause. Par exemple, assurez-vous d'avoir:
et pas
Notez le double "ss" dans le deuxième exemple qui provoquera l'échec du bouton Fermer.
la source
Nous pouvons fermer la fenêtre contextuelle modale des manières suivantes:
la source
$('.modal.in').modal('hide');
utilisez le code ci-dessus pour masquer la toile de fond du modal si vous utilisez plusieurs pop modaux sur une seule page.
la source
$('.modal').modal('hide');
fera l'affaire.la source
la source
$('#DeleteModal').modal('hide');
est pertinent ici?vous pouvez utiliser;
la source
L'utilisation de modal.hide ne ferait que masquer le modal. Si vous utilisez la superposition sous le modal, elle serait toujours là. cliquez sur appel pour fermer le modal et supprimer la superposition.
la source
Une autre façon de procéder consiste à supprimer d'abord la classe modal-open, qui ferme le modal. Ensuite, vous supprimez le fond de classe modal qui supprime la couverture grisâtre du modal.
Le code suivant peut être utilisé:
la source
Ajoutez un bouton en modal avec
data-dismiss="modal"
et masquez le bouton avecdisplay: none
. Voici à quoi cela ressembleraMaintenant, lorsque vous souhaitez fermer modal par programme, il suffit de déclencher un événement de clic sur ce bouton, qui n'est pas visible pour l'utilisateur
En Javascript, vous pouvez déclencher un clic sur ce bouton comme ceci:
la source
Ce code a parfaitement fonctionné pour moi pour fermer un modal (j'utilise bootstrap 3.3)
la source
Dans mon cas, la page principale à partir de laquelle le modal d'amorçage a été déclenché a commencé à ne pas répondre après avoir utilisé
$("#modal").modal('toggle');
way, mais a commencé à répondre de la manière suivante:la source
Ça marche bien
Cependant, lorsque vous avez plusieurs modaux empilés les uns sur les autres, cela n'est pas efficace, donc à la place, cela fonctionne
la source
Après quelques tests, j'ai constaté que pour le bootstrap, le modal doit attendre un certain temps avant d'exécuter l'
$(.modal).modal('hide')
after$(.modal).modal('show')
. Et j'ai trouvé dans mon cas que j'avais besoin d'au moins 500 millisecondes d'intervalle entre les deux.Voici donc mon cas de test et ma solution:
la source
Vous pouvez voir cette référence mais si ce lien a été supprimé, lisez cette description:
Appelez un modal avec id myModal avec une seule ligne de JavaScript:
Les options
Les options peuvent être transmises via des attributs de données ou JavaScript. Pour les attributs de données, ajoutez le nom de l'option à data- , comme dans data-backdrop = "" .
Les méthodes
.modal (options)
Active votre contenu en tant que modal. Accepte un objet d'options facultatif.
.modal ('bascule')
Bascule manuellement un modal. Retourne à l'appelant avant que le modal ne soit réellement affiché ou masqué (c'est-à-dire avant que l'événement shown.bs.modal ou hidden.bs.modal ne se produise).
.modal («afficher»)
Ouvre manuellement un modal. Retourne à l'appelant avant que le modal ne soit réellement affiché (c'est-à-dire avant que l'événement shown.bs.modal ne se produise).
.modal ('cacher')
Masque manuellement un modal. Retourne à l'appelant avant que le modal ne soit réellement caché (c'est-à-dire avant que l'événement hidden.bs.modal ne se produise).
.modal ('handleUpdate')
Réajustez manuellement la position du modal si la hauteur d'un modal change alors qu'il est ouvert (c'est-à-dire au cas où une barre de défilement apparaît).
.modal («disposer»)
Détruit le modal d'un élément.
Événements
La classe modale de Bootstrap expose quelques événements pour se connecter à la fonctionnalité modale. Tous les événements modaux sont déclenchés sur le modal lui-même (c'est-à-dire sur le **). Type Description
la source
De plus, vous pouvez «cliquer» sur un «x», ce qui ferme la boîte de dialogue. Par exemple:
$(".ui-dialog-titlebar-close").click();
la source
Dans mon cas, j'ai utilisé un bouton pour afficher le modal
Donc, dans mon code, pour fermer le modal (qui a l'id = 'my-modal-to-show'), j'appelle cette fonction (en typographique angulaire):
Si j'appelle $ (modalId) .modal ('hide') cela ne fonctionne pas et je ne sais pas pourquoi
PS: dans mon modal, j'ai codé cet élément de bouton avec la classe .close aussi
la source
Parfois, la solution ne fonctionne pas, vous devez donc supprimer correctement la classe et ajouter l'affichage CSS: aucun manuellement.
la source