2013-09-25 3 views
1

JQuery를 사용하여 내 사이트에 대한 검색 기능을 설정했습니다. 모든 일치하지 않는 결과는 toggle()을 통해 제거되며 페이지에 많은 데이터가 있습니다. 이미지를 만들 수 있기 때문에 검색을 실행하는 데 몇 초가 걸립니다.jQuery Attr 변경 대기

검색이 실행되고 있다는 사용자 피드백을 제공하기 위해 img 소스를 회 전자 gif로 바꾸려고합니다.

다음은 내가하려는 일입니다. 검색 버튼을 클릭하거나 검색 창에서 다음을 입력하십시오.

$('div#search img').attr('src', '/static/img/spinner.gif'); 
search_contacts(s); 
$('div#search img').attr('src', '/static/img/search.gif'); 

나는 Chrome 개발자 도구를 열고 네트워크 탭을 표시합니다. 검색을 시도하자마자 등록 된 spinner.gif에 대한 GET 요청이 표시됩니다. 문제는이 요청이 "보류 중"으로 설정되어 있고 search_contacts()이 실행되는 동안 절대로 진행되지 않는다는 것입니다. 검색이 완료되면 GIF가로드됩니다 (글쎄, 304는 5ms에서 수정되지 않음).

함수를 실행하기 전에 jquery/javascript가 속성 변경을 완료 할 때까지 기다리는 적절한 방법은 무엇입니까?

답변

0

jquery()를 사용하여 답변을 찾을 수있을 것 같습니다.

문서 : http://api.jquery.com/jQuery.when/

$.when(search_contacts(s)).done(function() { 

     $('div#search img').attr('src', '/static/img/search.gif'); 
}); 
+0

당신은이 링크에 답변을 찾지 못 하셨나요? – pbenard

+1

불행히도, 그것은 작동하지 않습니다. 새로운 gif에 대한 GET은'search_contacts' 함수가 완료 될 때까지 항상 "계류 중"으로 남아 있습니다. (코드에서 attr 변경 및 함수는 바꿔야하지만 올바른 동작은 아닙니다.) – fandingo