[modal-dialog] 부트 스트랩 jquery show.bs.modal 이벤트가 발생하지 않습니다.

부트 스트랩 3 문서의 모달 예제를 사용하고 있습니다. 모달이 작동합니다. 그러나 나는 그것이 실행될 때 show.bs.modal 이벤트에 액세스해야합니다. 지금은 시도하고 있습니다.

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

아무 일도 일어나지 않고 이벤트가 발생하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까??? 이것은 나에게 의미가 없습니다.



답변

이것을 사용하십시오 :

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


답변

on('shown.bs.modal')팝업에 모달을 인스턴스화하기 전에 넣어야합니다.

$("#myModal").on("shown.bs.modal", function () {
    alert('Hi');
});
$("#myModal").modal('show'); //This can also be $("#myModal").modal({ show: true });

또는

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

필드에 초점을 맞추려면 shown.bs.modal대신를 사용하는 것이 좋지만 show.bs.modal다른 이유로 배경을 숨기거나 모달이 표시되기 직전에 무언가를 설정하려면 show.bs.modal함수를 사용하십시오 .


답변

함수를 $(document).ready(function() {, 또는 더 간단하게 $(function() {. CoffeeScript에서는 다음과 같습니다.

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

이것이 없으면 JavaScript는 문서가로드되기 전에 실행되며 #myModal아직 DOM의 일부가 아닙니다. 다음은 Bootstrap 참조 입니다.


답변

$(document).on('shown.bs.modal','.modal', function () {

/// TODO EVENTS

});


답변

이 시도

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

shown대신 사용하면 show함수 및 경고 끝에 세미 콜론이 있는지 확인하십시오.


답변

이거 추가 해봐:

$(document).ready(function(){
    $(document).on('shown.bs.modal','.modal', function () {
         // DO EVENTS
    });
});


답변

비슷한 일이 나에게 일어 났고 setTimeout을 사용하여 해결했습니다.

부트 스트랩은 다음 시간 제한을 사용하여 표시를 완료합니다.

c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150,

따라서 300 개 이상을 사용하면 작동해야하며 200은 작동합니다.

$('#myModal').on('show.bs.modal', function (e) {
    setTimeout(function(){
        //Do something if necessary
    }, 300);
})