Il me semble que Bootstrap 3 ne fonctionne pas du tout avec les événements modaux. Je souhaite effectuer une action lorsque mon modal se ferme, mais rien ne se passe.
Voici mon HTML épuré:
<button type="button" data-toggle="modal" data-target="#imageUpload">Launch modal</button>
<div class="modal fade" id="imageUpload" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
Upload form here
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
et mon JS:
$(function(){
$('#imageUpload').modal({
show: false
});
$('#imageUpload').on('hidden', function () {
window.alert('hidden event fired!');
});
});
J'ai mis un JSfiddle ensemble ici - http://jsfiddle.net/EcnC3/1/
Je n'ai pas trouvé d'autres rapports d'événements modaux ne fonctionnant pas dans Bootstrap 3, alors je suis sûr d'avoir fait quelque chose de mal, mais je n'arrive pas à le comprendre. Merci pour toute aide que vous pouvez offrir
Selon documentation le nom de l'événement est comme shown.bs.modal
:
$('#imageUpload').on('shown.bs.modal', function () {
alert('show event fired!');
});
Regardez ce VIOLON
supprimez la classe .fade de votre modal. cela a fonctionné pour moi.
supprimer la classe fade
sur l'élément modal corrige le problème.
https://github.com/twbs/bootstrap/issues/11793
voir @Fint answer
La réponse indiquée comme étant correcte est juste cela, mais un ajout à la liste massive de "choses stupides que j'ai faites" - faites également attention à l'élément DOM que vous ciblez. Ce devrait être la division modale extérieure.
Par exemple, si vous utilisez RequireJS et un gestionnaire de modèle tel que Knockout-AMD-helper, vous pouvez avoir un balisage comme celui-ci.
Balisage parent:
<div class="modal fade" id="addThingModal" tabindex="-1" role="dialog" aria-labelledby="addThingModalLabel" aria-hidden="true">
<div data-bind="module: { name: 'addThing'}"></div>
</div>
Modèle:
<div id="addThingTemplate" class="modal-dialog">
...
</div>
votre script doit cibler '#addThingModal' et non '#addThingTemplate'
Il semble y avoir un bogue dans le fichier Bootstrap.min.css pour la boîte de dialogue modale. Je l'ai changé en Bootstrap.css et la boîte de dialogue est maintenant visible.