2011-09-02 2 views
1

저는 keyup 이벤트에서 발생시키는 ajax 메서드가 있습니다. 그러나 사용자가 키를 누를 때마다 즉시 실행하고 싶지는 않습니다. 이상적으로 저는주고 싶습니다. 서버로 이동하기 전에 1-2 초 지연되므로 사용자가 1/2 초마다 키를 누르면 타이핑이 끝나면 서버에 1 번만 호출됩니다 (아무 것도 입력하지 않고 1 ~ 2 초 후) .jQuery keyup 이벤트는 키 입력 사이에 일시 중지가 필요합니다

jQuery를 사용하여 어떻게하면됩니까?

답변

6
var timer = null; 
$("#element").keyup(function(){ 
    clearTimeout(timer); 
    timer = setTimeout(function(){ 
     //do your stuff 
    }, 2000); 
}); 
+0

그것에 나를 이길! hehe. – rlemon

+0

완벽한, 감사합니다! – marcusstarnes

0
var to; 
$("elm").bind("keyup",function(){ 
    clearTimeout(to); 
    to = setTimeout(function(){$.post()}, 3000); 
}); 
+0

이 작동하지 않습니다. – genesis

+0

올바른 선택이 아닌 바인딩? – rlemon

+0

'to '를 실제 타임 아웃으로 설정하지 마십시오. – Chad

관련 문제