2014-09-23 2 views
0

내가 할 노력하고있어입니다 반환하지 않습니다 jConfirm는 .... 참 또는 거짓 여기

function myFunction() 
{ 
    var x=jConfirm('Can you confirm this?', 'Confirmation Dialog', function (r) { 
     y=r; 
     alert(y); 
    }); 

    alert(x); 
} 

이유는 무엇입니까 경고 (x)를 먼저 실행 (I 자바 스크립트에서 초보자 해요) 그리고 경고 "undefined"를 입력하고 Ok를 누르면 "True"로 경고하고 Cancel을 누르면 "False"로 경고합니다.

jConfirm이 true 또는 false를 반환 할 수있는 방법이 있습니까? 즉 x가 trur 또는 false가 될 수 있습니까?

jConfirm에 "http://abeautifulsite.net/"플러그인을 사용하고 있습니다.

+0

http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call을 참조하십시오. 이것은 AJAX 호출이 아니지만 동일한 솔루션에서 본질적으로 동일한 문제입니다. – JJJ

+0

이 미리 정의되어 있습니까? –

+0

@Orion 아무런 변화가 없습니다. – JJJ

답변

0

상자에 alert 상자를 만들지 마십시오. 경고 상자처럼 보이는 HTML 요소가 만들어집니다. 여기서 중요한 차이점은 alert() 상자가 닫힐 때까지 자바 스크립트 실행을 중지하므로 alert(1); console.log(2);이 먼저 경고하고 콘솔에 로그온한다는 것입니다. jConfirm 이 아니기 때문에 alert()을 사용하면 jConfirm(1, ...); console.log(2)으로 전화하면 확인 상자 (HTML)가 표시되고 나중에 콘솔에 쓸 수 있습니다.

이 복잡한 단어 버전은 alert()동기입니다. 경고에서 무언가를 선택할 때까지 스크립트 실행을 잠급니다. jConfirm이 이고 비동기식이고 무언가를 선택할 때까지 스크립트 실행이 사용자의 선택에 독립적으로 계속됩니다.이 시점에서 콜백 함수가 트리거됩니다.

+0

jConfirm을 동기화하는 방법이 있어야합니까? ... 실제로 위의 코드는 실제 문제가 아닙니다. 내가 가진 것은 삭제 아이콘이며, 사용자가 삭제를 클릭하면 jConfirm은 확인을 요청하고 옵션을 기반으로해야합니다. 클릭 한 작업을 수행해야합니다. – dividedbyzero

+2

왜 그럴까요? 비동기 적으로 작성되었으며 빠르게 변경할 수있는 것이 아닙니다. 콜백에 대한 작업을 ** 이벤트 중심 ** (Google it)으로 만들려면 코드를 수정해야 할 것입니다. 'deleteRow' (또는 유사한 것)라는 함수를 만들어야하고 "yes"를 클릭하면 jConfirm 콜백에서 호출해야합니다. – Joe

+0

콜백에 액션 코드를 넣을 수없는 이유는 무엇입니까? 그것이 그것이 의미하는 바입니다. – JJJ

관련 문제