2011-07-07 18 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の:

<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(function() { 
    //$(this).hide(); 
}) 

は次のように).ajaxStopで$(この).hideを()(コメントアウトしてみてください。

相続人はあなたのためのフィドル:http://jsfiddle.net/GrsRT/11/

+0

これで動作します。何らかの理由で、私はカッコと中括弧をすべて閉じたことを確認するのに苦労します。どうもありがとう! –

3

loadingDivにそれを連鎖しないでください。

代わりにこれを試してみてください:

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

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

私はこれが古い質問ですけど、私はちょうど私が私の解決策を掲載していますので、この問題の私自身の発生を固定:基本的には、例外や構文のためのあなたのJavaScriptをチェックしますエラー。

コメントからは、構文エラーが原因で問題が発生したようです。私の場合は、ajaxSuccessハンドラで例外が発生し、ajaxStopの起動が妨げられました。 ajaxStartはバッチの最初のajax呼び出しでのみ起動するため、ajaxStartは後続のajax呼び出しで起動しません。 jQueryはajaxStopを受け取っていないので、バッチがまだ実行中であると考えました。

+1

Excatly。成功コールコールの例外は、私のajaxStopが発砲するのを妨げていました。 –

関連する問題