2012-12-27 2 views
0

확인이 이루어질 때까지 버튼 클릭의 진행을 멈추는 방법을 찾고 있습니다.Js 임시 중지 click() 진행

'Show Confirm Box'가 true가 될 때까지 진행 상황을 일시 중지하는 방법을 조언하십시오. 이제는 내 기능이 계속 실행됩니다.

.click(function(){ 
    //Show Confirm Box <- will return true of false 

    //Start Process if true; 

}); 

대단히 감사합니다.

+0

아래이를 확인 클릭 이벤트 발생, 예 양식 제출 버튼에 대한 클릭을 가로 채거나 코드에서 다른 이벤트 (예 : 대화 상자)를 기다리고 싶습니까? – kieran

+0

저는 신자입니다. 'Show Confirm Box()'에서 false 값을 주려고 다른 함수를 기다리고 싶습니다. – Till

답변

2

통화가 동기 인 확인 상자에서 사용자의 입력에 따라 함수를 호출. 즉, 사용자가 상자를 닫을 때까지 코드가 효과적으로 일시 중지됩니다. 이제

if (confirm('some message')) { 
    // User confirmed, do something here 
} 

, 당신은 confirm()을 사용하지 않는, 대신 사용자 정의 모달 대화 상자 또는 유사한 것을 사용하는 경우, 당신은 콜백을 사용해야합니다.

페이지가 사용자에게 고정되어 표시되므로 스크립트가 실행되지 않도록 차단해서는 안됩니다. 대신 대화 상자를 표시하는 함수에 콜백 함수를 전달하고 완료되면 대화 상자에서 해당 함수를 호출 할 수있게하십시오.

function showDialog (confirmCallback) { 
    // Show dialog here 
    if (result === 'yes') { // replace this, obviously 
     confirmCallback(); 
    } 
} 

.click(function(){ 
    showDialog(function() { 
     // start process 
    }); 
}); 
+0

고맙습니다. 저는 초보자입니다. 추가 질문을해도 될까요? confirmCallbac은 매개 변수가 아니라 시스템 매개 변수이며 confirmCallback() 및 confirmCallback()은 자동으로 .click showDialog()로 돌아갑니다. 나는이 권리를 이해하고 있는가? – Till

+0

아니요,'confirmCallback'은 사실 매개 변수입니다. JavaScript에서는 다른 객체와 마찬가지로 함수에 변수를 할당 할 수 있습니다. 클릭 핸들러에서'showDialog()'가 호출 될 때 실제로는 익명 함수를'showDialog()'의 첫 번째 매개 변수로 전달합니다. 이 함수는 다른 매개 변수의 다른 값과 마찬가지로'showDialog()'에서'confirmCallback'에 할당됩니다. – Brad

+0

고맙습니다. 코드에서 제 대답을 얻었습니다. 테스트 됨. – Till

1

click 이벤트에 대한 매개 변수는 click 이벤트가 발생할 때 실행될 함수 핸들러입니다.

그래서 확인 대화 상자가 false 값을 반환하면 항상 해당 함수에서 돌아올 수 있습니다.

코드)}이

jQuery(".button").click(function(){ 
    var ans = confirm("Do you want to proceed further ?"); 
    if(!ans) return; 

    alert("Now you can code the rest "); 

처럼 될 것이다, 나는 바이올린을 만들었습니다

, 당신이를 중지 할 의미합니까

http://jsfiddle.net/shidhincr/Ubj7S/1/

+0

대단히 고맙습니다. 제 자신의 대화 상자를 사용하고 싶습니다. 그리고 confirm() 대신에 var ans = Show-dialog()와 같은 함수를 만듭니다. 것은 (? ans)가 돌아 오기 전에 나는 전체 진도를 멈추는 방법이 아닌 방법이다. – Till

관련 문제