bootstrap, boîtes de dialogue modales, l'événement shown.bs.modal ne se déclenche pas
Je suis en utilisant le dialogue modale avec télécommande en option:
<a target="profile-banner" data-target="#edit-slide-dlg" href="/Banner/SlideEditModal/1/1"
data-toggle="modal" class="banner-slide-control">Edit</a>
Où:
<div id="edit-slide-dlg" class="modal fade" tabindex="-1"></div>
Aussi, je suis à l'écoute pour montré.bs.modal cas où j'utilise de l'événement.la propriété target:
$("body").on("shown.bs.modal", function (event) {
//do something with event.target
}
Quelque raison que cet événement n'est pas déclenché lorsque je dialogue ouvrir pour la première fois. Et il est exclu pour la deuxième fois seulement. J'ai essayé de parcourir bootstrap scripts et trouvé ce code (voir mon commentaire):
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
that.$element.find('.modal-dialog') //wait for modal to slide in
.one($.support.transition.end, function () {
that.$element.focus().trigger(e) //THIS LINE NEVER EXECUTED AT FIRST DIALOG OPENING
})
.emulateTransitionEnd(300) :
that.$element.focus().trigger(e)
Alors, j'ai désactivé transition comme une solution de contournement, Il fait état de cause, être tiré pour la première fois, mais, de l'événement.la cible est une chaîne vide. Pour la deuxième fois de l'événement.cible contient de dialogue appropriée HTML. Est-ce problème avec mon code ou bootstrap?
source d'informationauteur Tenek
Vous devez vous connecter pour publier un commentaire.
J'ai eu exactement le même Problème. J'ai pu le résoudre avec la solution à ce StackOverflow question: Bootstrap modal "chargé" de l'événement sur la télécommande fragment
Fondamentalement, vous devez ouvrir le modal manuellement et mettre en œuvre l'Ajax chargement vous-même. Quelque chose comme: