2013-02-28 3 views
1

검색 조건이 포함 된 아코디언이있는 페이지가 있습니다. 한 사람이 검색 버튼을 클릭하면 기준이 닫힙니다 (아코디언 제목에 대한 클릭을 시뮬레이션 함). 이것은 잘 작동합니다.jQuery 아코디언 - 빠른 표시/숨기기

사용자가 입력을 잘못 입력하면 내 AJAX 호출이 반환되고 아코디언이 닫히기 전에 검색 기준을 다시 표시하려고 시도합니다 (다시 아코디언 머리글을 시뮬레이션 한 클릭). 물론 이것은 검색 기준을 열지 못합니다.

간단한 예는 아코디언 제목을 두 번 클릭하는 것입니다. 두 번 클릭하는 동안 아코디언이 전환되면 아무 반응이 없습니다.

내 상황에서이를 방지하려면 어떻게해야합니까? 참고 : IE에서 IE보다 아코디언 열기/축소에 애니메이션이 적용되지 않으므로 Chrome/FF에서 문제가되는 것 같습니다. #의 섹션 1은 아코디언 제목을 나타내는 코드에서

기본 아이디어 :

$("#section1").click(); 
//some very fast AJAX. 
$("#section1").click(); 

JS 바이올린 : http://jsfiddle.net/mikeyfreake/gGaJn/2/

감사합니다, 당신의 Ajax 호출에 마이크

답변

2

전화 stop 아코디언의 자녀에 :

$("#accordion").children().stop(true, true); 

http://jsfiddle.net/gGaJn/9/

+0

@Brandon, 감사합니다. 이 솔루션은 제가 찾고있는 솔루션입니다. –

1

사용 async: false 매개 변수입니다. 이렇게하면 Ajax 호출이 두 번째 클릭 전에 실행을 마칠 수 있습니다.

http://api.jquery.com/jQuery.ajax/

아니면 success 함수에서 두 번째 클릭 수행 할 수 있습니다

$.ajax({ 
    success: function (data) { 
     $("#section1").click(); 
    }, 
    ... 
}); 
+0

감사합니다 @ 롭. 이것은 유효한 해결책이지만, 선호하는 비동기 기능을 유지하기 때문에 Brandon에서 제공하는 대답을 선택해야합니다. –