2010-03-22 6 views
0

O, 그래서 현재 각 키에 sql 검색 (아약스 경유)을 실행하는 '라이브 검색'아약스 검색이 있습니다. 800 밀리 초키 업시 자바 스크립트 타이머가 다시 시작됩니까?

말에 대한

실행 키 후 SQL 검색을 누르면되지 않았습니다

은 무엇 내가 선호하는 것은이다.

그래서 나는 것 타이머가 다음 아약스를 호출 800ms, 에 도달 할 경우 새의 keyup 이벤트가 타이머가

방법를 다시 시작할 때 발생하면, 을 키에서 시작되는 타이머를 갖고 싶어 이 작업을 수행?

답변

2

우수한 플러그인이 있습니다. TypeWatch (IIRC StackOverflow는 Users 페이지에서이 정보를 사용합니다). 다음은 샘플 사용입니다 :

$("#textId").typeWatch({ 
    highlight: true, 
    wait: 800, 
    captureLength: -1, 
    callback: function() { 
     // changed text 
    } 
}); 
+0

절대적으로 완벽 경우! – Haroldo

5
(function() { 

var theTimeout; 

function doSearch() { 
    // Do Search 
}; 

$('#theField').bind('keyup', function() { 
    clearTimeout(theTimeout); 

    theTimeout = setTimeout(doSearch, 800); 
}); 

}()) 
+2

+1, 그냥 비슷한 솔루션을 입력했다. –

+0

+1 다음과 같은 솔루션을 입력! : P – Matt

+0

전역 변수의 네임 스페이스를 만드는 것도 좋은 생각 일 수 있습니다.하지만 확실하게 할 일은 다음과 같습니다. –

0

내가 내 솔루션이였습니다 문제가 있었다 :

var doAjax = 0 
$("input#name").keyup(function(){ 
    doAjax++; 
    setTimeout(function(){ 
     doAjax--; 
     if(doAjax>=1){ 
      return; 
     } 
     $.post("do_ajax", { ... 

몰라 그것이 최선의 해결책이지만, 작동 :)

관련 문제