2015-01-28 2 views
1

어쩌면 누군가 내가 여기서 뭘 놓치고 있는지에 대해 나에게 깨달을 수 있습니다. 사용자 입력을 기반으로 아약스 호출 jquery 데이터 테이블을 업데이트하는 텍스트 상자가 있습니다. 분명히 사용자가 타이핑을 마칠 때만 아약스 호출을 시작하는 것이 좋습니다.jquery 키업 지연이 무시되고 있습니다.

그러나 SO와 다른 곳에서 시도한 스 니펫과 상관없이 시간 제한은 무시되고 아약스는 즉시 발사됩니다. 나는 누군가가 올바른 방향으로 나를 가리킬 지 궁금해.

var timer; 
$("#search_query").on('keyup', function() { 
    clearInterval(timer); //clear any interval on key up 
    timer = setTimeout(alert("test"), 3000); 
}); 

답변

1

첫 번째 매개 변수로 함수를 전달해야합니다. 이제 경고 ("테스트") 호출의 결과를 전달합니다.

var timer; 
$("#search_query").on('keyup', function() { 
    clearInterval(timer); //clear any interval on key up 
    timer = setTimeout(function(){ alert("test"); }, 3000); 
}); 

이렇게하면됩니다.

+1

이샤을 시도! 이렇게 간단하게, 도와 줘서 고마워, 지금 완벽하게 작동합니다. 나는 SO가 나를 허용 할 때 8 분 안에 받아 들일 것이다. 좋은이. – jiraiya

+0

환영합니다. 기꺼이 도와주세요. – Hoijof

0

setTimeout('you need to pass function here', 300)

var timer; 
$("#search_query").on('keyup', function() { 
    clearInterval(timer); //clear any interval on key up 
    timer = setTimeout(hello, 3000); 
}); 

function hello(){ 
    alert("test"); 
} 
관련 문제