107 votes

Bootstrap jquery événement show.bs.modal ne se déclenchera pas

Je suis en train d'utiliser l'exemple de modal des documents bootstrap 3. Le modal fonctionne. Cependant j'ai besoin d'accéder à l'événement show.bs.modal quand il se déclenche. Pour l'instant j'essaie simplement :

$('#myModal').on('show.bs.modal', function () {
alert('hi')
})

Rien ne se passe, l'événement ne se déclenche pas. Qu'est-ce que je fais mal ??? Cela n'a pas de sens pour moi.

134voto

Ali Points 1208

Utilisez ceci :

$(document).on('show.bs.modal','#myModal', function () {
  alert('hi');
})

88voto

Pierre Points 659

Assurez-vous de mettre votre on('shown.bs.modal') avant d'instancier le modal pour le faire apparaître

$("#myModal").on("shown.bs.modal", function () { 
    alert('Salut');
});
$("#myModal").modal('show'); //Cela peut également être $("#myModal").modal({ show: true });

ou

$("#myModal").on("shown.bs.modal", function () { 
    alert('Salut');
}).modal('show');

Pour se concentrer sur un champ, il est préférable d'utiliser le shown.bs.modal au lieu de show.bs.modal mais peut-être pour d'autres raisons vous voulez masquer quelque chose en arrière-plan ou régler quelque chose juste avant que le modal commence à s'afficher, utilisez la fonction show.bs.modal.

27voto

Chloe Points 2737

Enveloppez votre fonction dans $(document).ready(function() { }), ou plus simplement, $(function() {. En CoffeeScript, cela ressemblerait à

$ ->
  $('#myModal').on 'show.bs.modal', (event)->

Sans cela, le JavaScript s'exécute avant le chargement du document, et #myModal ne fait pas encore partie du DOM. Voici la référence Bootstrap.

14voto

Zeekoi Inc. Points 141
$(document).on('shown.bs.modal','.modal', function () {

/// ÉVÉNEMENTS À FAIRE

});

12voto

Trevor Points 14484

Essayez ceci

$('#myModal').on('shown.bs.modal', function () {
   alert('salut');
});

Utiliser shown au lieu de show, assurez-vous également d'avoir vos points-virgules à la fin de votre fonction et de l'alerte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X