2011-07-07 4 views
6

왜 이것이 작동하지 않는지 이해할 수 있습니까? loading.gif는 Ajax .load가 페이지를로드하는 동안 나타나지만 멀리 가지 않습니다. 이것은 나를 .ajaxStart 함수 나 .ajaxStop 함수가 호출되지 않는다고 믿게한다. 왜냐하면 처음에는 그것을 숨기지도 않기 때문이다..ajaxStart 및 .ajaxStop이 실행되지 않음

TIA!

는 CSS :

#loadingDiv { 
background-image: url('images/loading.gif'); 
height: 32px; 
width: 32px; 
margin: 50px auto 50px auto; } 

JQuery와 : loadingDiv

<script type="text/javascript"> 
     $(document).ready(function() 
      { 
       $('#loadingDiv') 
        .hide() 
        .ajaxStart(function() { 
         $(this).show(); 
        }) 
        .ajaxStop(function() { 
         $(this).hide(); 
        }) 
       ; 
       $("#results").load("i/getAllInfo.class.php"); return false; 
      }; 
    </script> 

답변

2

문서 준비 함수에서 false를 반환 할 필요가 없습니다하지만 당신은이

 $("#results").load("i/getAllInfo.class.php"); return false; 
}); //<----- you need the) 

당신의 URL "같은) 닫는 괄호를 추가 할 필요가 않습니다

대신 시도 i/getAllInfo.class.php "가 잘못되었습니다.

이 같은 .ajaxStop()에서 $를 (이) .hide()를 주석 시도 : 그 수 있기 때문에

.ajaxStop(function() { 
    //$(this).hide(); 
}) 

을 당신이 그것을 볼 수 없습니다 그래서 약간의 시간을 보여주기 위해.

을 heres 당신을위한 바이올린 : http://jsfiddle.net/GrsRT/11/

+0

이제 작동 중입니다. 어떤 이유로 든 어려운 시간에 괄호와 중괄호를 모두 닫았습니다. 매우 감사합니다! –

3

하지 마십시오 체인을.

$.ajaxStart(function() { 
    $('#loadingDiv').show(); 
}); 

$.ajaxStop(function() { 
    $('#loadingDiv').hide(); 
}); 
6

나는이 오래된 질문 알아요,하지만 난 그냥 내 솔루션을 게시하도록하겠습니다 있도록이 문제를 내 자신의 발생을 고정 : 기본적으로, 예외 또는 구문 자바 스크립트를 확인 오류.

의견에서 구문 오류로 인해 문제가 발생한 것으로 보입니다. 나에게는 ajaxStop이 실행되지 못하게하는 ajaxSuccess 핸들러에서 예외가 있었다. 그런 다음 ajaxStart는 이후의 ajax 호출에서 실행되지 않습니다. ajaxStart는 배치의 첫 번째 Ajax 호출에서만 실행되기 때문입니다. jQuery는 ajaxStop을받은 적이 없으므로 배치가 여전히 실행 중이라고 생각했습니다.

+1

Excatly. 성공 callcack의 예외로 인해 내 ajaxStop이 실행되지 못했습니다. –