2

5 초가 경과 할 때까지 부트 스트랩 모달 표시를 지연하려고합니다. 여기 내 코드의 섹션입니다. 내가 MDN에서 읽은 것에서 쓰는 것 같습니다. 모달은 아무런 시간이 지나도 나타나지 않습니다. 어떤 도움을 주시면 감사하겠습니다.부트 스트랩으로 setTimeout 시간 초과 후 모달이 표시되지 않음

var timeout; 
    function modalAlert(message){ 
     $("#myModalLabel").text("Hey Look!") 
     $('.modal-body').html("<img src='"+message+"'>"); 
     window.setTimeout(function(){showModal();},5000); 

    } 
    function showModal(){ 
    console.log("HERE") 
    $("#myModal").modal('show') 
    } 

답변

6

사용 "표시"이벤트 처리기에서 마지막 줄을보십시오 :

var timeout; 
    function modalAlert(message){ 
     $("#myModalLabel").text("Hey Look!") 
     $('.modal-body').html("<img src='"+message+"'>"); 
     timeout = window.setTimeout(showModal,5000); 

    } 
    function showModal(){ 
    console.log("HERE") 
    $("#myModal").modal('show') 
    } 

비제이 Ramamurthy는 나에게 해결책을 찾을 도움 모달을하고 숨 깁니다. jQuery 플러그인이므로 함수를 함께 연결할 수 있습니다.

$("#myModal").modal("show").on("shown", function() { 
    window.setTimeout(function() { 
     $("#myModal").modal("hide"); 
    }, 5000); 
}); 
+2

나중에 참조 할 것이므로 질문에 대한 언급이 없다. 특정 부트 스트랩 버전. 부트 스트랩 3에서 이벤트는 '표시'되지 않고'shown.bs.modal '이라고 부릅니다. – Bjoern

2

가 타임 아웃을 등록 할 modalAlert 기능

timeout = window.setTimeout(function() {showModal();}, 5000); 
+0

작동하지 않았습니다. 당신의 방법이나 광산을 크롬 콘솔에 붙여 넣으면 잘 작동합니다. – Nick

+1

잠깐 내가 알아 냈어. 시간 초과 = 제거하고 잘 작동합니다. 당신의 도움을 주셔서 감사합니다! 내 질문에 작업 솔루션을 추가했습니다. – Nick

+0

솔직히 말해서 나는 혼란 스러웠다. 전에 들어 보지 못했던 이유에 대해 혼란 스러웠다.하지만 PHP에서 작동하기 때문에 자바 스크립트에서 작동 할 수도있다. – vijrox

관련 문제