2010-08-22 6 views
0

잘 작동하는 beforeSend ajax 이벤트에서 slideUp 및 slideDown을 사용하고 있지만 다른 브라우저에서는 ajax 포스트 백이 slideUpDown이 완료되기 전에 완료되어 내 success 함수가 먼저 실행 된 다음 slideUp/down이 완료된 것 같습니다.ajax beforeSend 이벤트의 애니메이션이 완료 될 때까지 콜백을 중지하는 방법은 무엇입니까?

slideUp/Down이 완료 될 때까지 (1) ajax를 보내지 않거나 (2) slideUp/Down이 완료 될 때까지 success 함수에서 결과를 처리하지 못하게하려면 어떻게해야합니까?

slideDown이 끝나고 성공할 때 설정되는 isAnimationFinished 변수를 만들려고했는데이 변수를 기다리는 루프가 비어 있지만 while을 시도하면 천천히 실행되는 스크립트에 대한 오류가 발생합니다.

답변

2

코드를 보지 않고도 각 기능이 무엇을하는지 잘 모르겠습니다. 필자의 초기 생각은 ajax 함수가 ajax 호출과 분리되어 ajax 함수가 슬라이드 함수가 완료된 후에 만 ​​실행된다는 것입니다.

만약 이것이 적합하지 않다면 우리가 해결할 수있는 코드를 게시하십시오. 감사!

+0

감사합니다. 결국이 방법을 사용했습니다. beforeSend 이벤트는 내 필요에 맞지 않습니다. –

0
$.ajax({ 
     url: pageurl + "?data-role=button", 
              beforeSend: function(){ 
               console.log('beforesend'); 
               animationBeforesend(); // loading bar 
              }, 
              complete: function(){ 
               console.log('Compelete'); 
              }, 
     success: function (data) { 
               var totalTime = new Date().getTime()-ajaxTime; 
               console.log(totalTime + ' micro second page loading time'); 
               console.log('Success'); 
               console.log($('#progressbar').attr('value')); 
               $(".Sitecontainer").html(data); 
               loadFunction(); // loading bar HIDE 
     } 
    }); 
+0

이 코드를 사용하는 방법 제안하십시오. –

관련 문제