2009-12-07 2 views
2

내가 특정 사업부에 살고있는 결과를 보여 검색 양식을하기 전에 X 초를 기다립니다 (볼이 Filter results with Jquery) 나는 스크립트를 이제 조금과를 수정 한아약스 :로드

때 사용자 검사 중 하나 결과 div가 자동으로 새로 고침 확인란. 로드 함수는 onChange 이벤트에 의해 처리됩니다.

지정된 시간 후에 결과 스크립트를로드하는 아약스를 얻을 수있는 방법이 있습니까?

예를 들어 하나의 확인란을 선택하면 스크립트를로드하기 전에 스크립트가 2 초 동안 기다려야합니다. 이 방법으로 사용자는 예를 들어 2 개 또는 3 개의 체크 박스를 확인할 수 있으며, 선택을 중단하면 AJAX가 스크립트를로드합니다. 당신은) (A에서는 setTimeout을 사용하십시오 기다려야 호출 할 수

$(document).ready(function() 
    { 
     $('#category_filter').click(function() 
     { 

      var catArray = new Array(); 
      var j = 0; 
      for(var i = 0; i < <?php echo $categories_count;?>; i++) 
      { 
       if(document.category_filter.filter_id[i].checked == 1) 
       { 
        catArray[j] = document.category_filter.filter_id[i].value; 
        j++; 
       } 
      } 
if(catArray[0]) 
      $.ajax(
      { 
       type: "POST", 
       url:  "index.php?action=ticket-search", 
       data: ({ filter: 'category',filter_id : catArray.toString() }), 
       success: function(msg) 
       { 
        $('#t_content').html(msg) 
           .hide() 
           .fadeIn(700, function() {}); 
       } 
      }); 
      }); 
     }); 
     }); 

답변

0

:

스크립트에 대한 아약스 호출하는 기능을 수행하지

--edit--

,이 코드입니다 몇 초.

var t = setTimeout(myAjaxFunction, 2000); //wait two seconds 

사용자가 여러 개의 확인란을 클릭하도록 허용하는 경우 제한 시간이 이미 설정되어 있는지 확인해야 할 수 있습니다. 이것은 각각 2 초 동안 기다리는 다중 AJAX 호출을 피하기위한 것입니다. 논리는있을 것입니다 :

  1. 사용자는
  2. 를 클릭 할 때 시간 제한이 있습니까? 예 다음 클릭
  3. 을 무시하면 그렇지
+0

당신 싶어'에서는 setTimeout (myAjaxFunction, 2000) 확인하십시오. (물론'myAjaxFunction' *가 당신이 수행하고자하는 함수를 반환한다면 괜찮습니다.) –

+0

@David 고마워, 대답을 업데이트했다. –

1

가의 setTimeout를 사용해보십시오 호출 AJAX에 대한 시간 제한을 설정합니다.

setTimeout("alert('hello')",2000); 
1

setTimout 기능을 사용합니다. 그래서 같이 : 그러나

var timer = setTimeout(yourFunction(), 2000);

, 새로운 버튼이 체크하거나 다른 당신이 아약스 여러 번 발사 끝날 때마다 그 시간 제한을 취소 이벤트를 첨부해야합니다. `또는 즉시 실행할 수 있습니다;

if(timer) { clearTimout(timer); }

var timer = setTimeout(yourFunction(), 2000);