2013-12-18 2 views
0

javascript에서 모달 팝업을 만들고 싶습니다.
하지만 내 요구 사항은 팝업이 열릴 때마다 닫힐 때까지 다음 자바 스크립트 줄 실행을 중단합니다.javascript의 alert like function

예 :

var bool = false; 
DisplayModal("Show Message"); 
bool = true; 
alert("alerted only after closing the pop up : bool = true"); 
bool = false; 

그래서 모달 팝업을 닫을 때까지 "Show Message" bool이 적용되지 않습니다. 나는 팝업을 닫을 때 다음

나는 사전에 감사합니다 도움이 필요합니다 .. 나머지 스크립트는

마찬가지로 alert처럼 ... DisplayModal 후 순서대로 실행됩니다하지만 alert을 무시하고 싶지 않아 .. .

편집 : 좀 더 설명하기

봅니다 .. 내가 때를 실행을 중지 할

라는
정지 후 팝업 쇼 후 실행

팝업 다음 줄에서 계속 (수단 : bool = true; ...) 폐쇄 후

+0

사용할 수있는 http://jqueryui.com/ dialog/ – Neha

+0

@ 네하 : 실행을 멈추지 않습니다. 실제로 JavaScript의 실행을 중지시키는 '경고'는 거의 대체 할 수 없습니다. –

+0

당신은 이것을 할 수 없습니다. 콜백을 사용해야합니다! – Cracker0dks

답변

0

confirm

(function() { 
var result = confirm("I'm Happy?"); 
alert(result ? "Yes, I'm happy" : "No, I'm not happy"); 
}()); 

확인하기위한 작업 같은 소리를 것입니다 결과가 반환 될 때까지 현재 실행 스레드를 차단합니다.

0

경고, 프롬프트, 확인 및 XMLHTTPRequest가 JavaScript의 유일한 동기 함수입니다. 이벤트와 콜백을 사용해야합니다.

팝업을 닫을 때까지 사용자가 아무 것도 할 수 없게하려면 투명 한 div가 모든 페이지를 복구하도록 만들 수 있습니다 (팝업 제외).

2

대화 상자의 모양을 사용자 정의하려면 jQuery의 대화 위젯을 사용할 수 있습니다. 그것은 이벤트를 지원합니다. 간단한 예제를 만들었습니다. http://jsfiddle.net/5CBdm/

이벤트 핸들러를 대화 상자의 닫기 이벤트에 첨부하고 나머지 코드는 이벤트 핸들러에 넣을 수 있습니다.

필요한 HTML :

<div id="dialog-modal" title="Modal dialog"> 
    <p>Message</p> 
</div> 

그리고 해당 자바 스크립트 : 대화 상자에

$("#dialog-modal").dialog({ 
    height: 140, 
    modal: true, 
    close: function (event, ui) { 
     alert("Executed when the dialog is closed."); 
    }  
}); 

링크 :

http://jqueryui.com/dialog/#modal

http://api.jqueryui.com/dialog/#event-close

+0

필자는 어떤 함수에서든 팝업을 열고 싶으면 그 함수를 닫은 후에 실행을 멈추고 실행을 계속합니다. – Sachin

+0

알겠습니다. 그런 다음 @ sebcap26과 같이 확인을 사용할 수 있다고 말하면 일종의 이벤트 시스템을 구현해야합니다. – dtengeri

1

jQuery 플러그인을 사용할 수 있습니다.예를 들어 http://dimsemenov.com/plugins/magnific-popup/

아니면 자신 (jsfiddle에 그것을 시도 : http://jsfiddle.net/T2Vn3/을)에 의해 그것을 만들 수 있습니다

<div class="overlay"> 
    <div class="alert"> 
     This is alert! 
     <br/> 
     <button>OK</button> 
    </div> 
</div> 

<button class="forAlert">Click me!</button> 

JS :

document.querySelector('.alert button').addEventListener('click', function() { 
    document.querySelector('.overlay').style.display = 'none'; 
}, false); 

document.querySelector('.forAlert').addEventListener('click', function() { 
    document.querySelector('.overlay').style.display = 'block'; 
}); 
+0

늦게 답변을 드려 죄송 합니다만, 다음 함수 라인의 실행을 멈추지 않을 것입니다 ... jsfiddle : http://jsfiddle.net/T2Vn3/1/ – Sachin

+0

@Sac, 코드를 첫 번째 클릭 핸들러에 추가 할 수 있습니다 :'document.querySelector ('경고 버튼') addEventListener ('click', function() {/ * 여기 * /}, 거짓); – kmakarychev