2012-04-08 3 views
2

확인을 파견, 그래서 콘솔과 같은 동작을 달성하기 위해 노력하고 내가 어떤 이벤트가 전달 될 때까지 실행을 일시 중지해야한다, 내가 정확히 필요한 것은 이것이다 이 가상 함수는 사용자가 텍스트 요소가되도록 "element"요소의 키를 누를 때까지 실행을 일시 중지해야합니다. 그런 다음 사용자가 해당 텍스트 필드의 키를 누르면 실행이 계속되고 evt는 해당 이벤트와 관련된 정보를 포함해야합니다.jQuery를 정지 실행이

자바 스크립트로 구현할 수 있습니까? 또는 작동하는 가까운 행동.

답변

1

경고 및 프롬프트를 제외하고 javascript에서 차단 조치가 없습니다. 이렇게하는 유일한 방법은 다음과 같습니다. (잘못된 것일 수도 있습니다) :

var evt = $("element").on("click",function(){ 
    //Continue here 
}); 
+0

것은 내가 여기 달성하려는 행동은 경고, 확인하고 메시지가 가지고 동일하기 때문에 내가, 실행을 차단해야한다는 것입니다. 사용자가 일부 데이터를 입력 할 때까지 기다려야합니다. –

+1

왜 익명 함수로 데이터를 처리하는 것이 좋을까요? 예를 들어, - http://jsfiddle.net/zYej4/ –

0

그냥 keydown 이벤트를 사용하십시오. 그것은 당신이 달성하기를 원하는 것입니다 : 키를 눌렀을 때만 행동하십시오.

6

자바 스크립트에서 기다릴 필요가 없습니다. 단 하나의 스레드 만 있으므로 페이지의 다른 부분으로 들어오는 다른 이벤트를 처리 할 수 ​​있어야합니다.

대신 무엇을하고 싶은지는 대기하려는 지점 이후에 발생하는 모든 것을 취하여 function(){}으로 꾸리는 것입니다. (이 기능은 "계속"라고하며 모든 자바 스크립트 및 기타 크게 비동기 환경에서 여기 저기이 패턴을 발생할 수 있습니다.) 거기에서

, 다음과 같은 jQuery를 사용하여 새로운 기능을 등록 할 수 있습니다 :

var evt = $("element").keydown(function(event){ 
    var keypressed = event.keyCode; 

    // do whatever you'd like with the keypress. 
}); 

대신를 keyDown의 keypress 사용을 고려할 수 있지만, 키 누름이 (거의 역설적으로) 당신에게 모든 키 누름, 어떤 종류의 텍스트 입력으로 전환하는 단지 사람들을하지 않습니다.

+0

문제는 실행을 차단해야한다는 것입니다. 왜냐하면 여기서 달성하고자하는 동작은 경고, 확인 및 프롬프트와 동일하기 때문입니다. 사용자가 데이터를 입력 할 때까지 기다려야합니다. –

+0

@ Andrés "블록 실행"이라고 말하면 올바른 키 누르기 이벤트가 발송 될 때까지 모든 사용자 상호 작용에 대해 웹 페이지를 차단한다고 가정합니다. – David

+0

내가 블록을 의미 할 때, 나는 경고, 즉각적이고 확인하는 것과 같은 효과를 의미한다. 나는 어떤 시점에서 스크립트를 멈추고 싶다. 그리고 나서 사용자가 텍스트 필드에서 리턴 키를 누른다면, 텍스트 필드의 내용으로 몇 가지 작업을 수행한다. –