2012-03-02 3 views
1

배열에서 Ajax 요청을 추적하고 다음 요청이 취소되기 전에 기존 요청을 취소하려고 시도하지만 $ (this) .abort() 함수가 생겼다. 존재하지 않는다. 어떤 아이디어? 당신이 $.eachajaxPool 배열을 반복 할 때새로운 AJAX 요청을 죽이기 전에 죽이기

var ajaxPool = new Array(); 

    $('.search_input').live('keyup', function() { 

      $.each(ajaxPool, function(){ 

       $(this).abort(); 

      }); 

      var query = $('.search_input').val(); 

      if (query == '' || query == ' ') { 

       $('.search_results').remove(); 
       return false; 
      } 

      var request = $.ajax({ type: 'GET', 
        url: '{{ path('Search') }}/' + query, 

        beforeSend:function() { 


        }, 
        success:function(data){ 

         $('.search_results').remove(); 
         $('.search_bar').append(data); 

        },       
        error:function(){ 

         alert("Could not complete search."); 

        } 
       }); 

       ajaxPool.push(request); 
     }); 
+1

'this.abort()'를 사용하십시오.'this'는 xhr 객체입니다.이 객체를 jQuery 객체로 변환하는 것은 의미가 없습니다. – bfavaretto

+0

아 감사합니다 ... 바보. 대답으로 추가하고 받아 들일 것입니다 (8 분이 지나면). – ThinkingInBits

답변

0

this 이미 abort() 방법을 포함 jqXHR 객체입니다. 따라서 $으로 jQuery 객체로 변환해서는 안됩니다. 이것을 사용하십시오 :

$.each(ajaxPool, function(){ 
    this.abort(); 
}); 
관련 문제