2011-10-21 10 views
1

私はtest.phpファイルにあるコンテンツに以下のコードをロードしています。 PHPファイルにはたくさんのコードがあり、読み込むのに少し時間がかかります。それがロードされると、「コンテンツのロード」テキストが残ります。 - ページがロードされている間に読み込みシンボルを表示する - コンテンツが表示されたら、コンテンツの読み込みを隠すJQueryを使用してPHPファイルにコンテンツをロードする

どうすればよいですか?

<script type="text/javascript"> 
      $(document).ready(function(){ 
      $("a").click(function(){ 
      $("#test").load('test.php'); 
      }); 
     }); 
    </script> 

<div id="test"></div> 
<a>Load content</a> 

UPDATE:

また、私はそれがリンク(それが現在のタッチデバイス上で動作しないよう)になりたい - 任意の提案ですか?

+0

OptimusCrimeはそれを隠すだけ言ったかのどちらかがあなたのdivの内側 'ロードcontent'を置く:' $( "A")(非表示); ' – ComFreek

+0

まず[ロードを取得します。イメージ](http://ajaxload.info/)。 [表示](http://api.jquery.com/show/)を呼び出してから、 'load'を呼び出します。次に、['load'](http://api.jquery.com/load/)のコールバックで、' a'タグを[hide](http://api.jquery.com/hide/)にします。 –

+0

'a'タグに' href'属性を追加する必要がありますか? – Ragnis

答えて

3

<div id="test"><a>Load content</a></div> 

またはあなたのJavaScriptで

$("a").click(function(){ 
    /*Code to show loading message*/ 
    $("#test").load('test.php', function() { 
     //this is a callback function that will fire after the data from test.php is loaded into the test div 
     $('a').hide();//or you can use .remove() to completely remove the tag 
     /*Code to remove the loading message*/ 
    }); 
}); 
1

divの中にLoadコンテンツを挿入します。ロードが完了すると、上書きされます。

0

$ .ajax()に切り替えます。 $ .loadと$ .getは、より多くの設定オプションを可能にするマスター.ajax()メソッドへのヘルパーショートカットメソッドです。

beforeSendコールバックでローダーアニメーションを設定し、onCompleteコールバックでそのローダーアニメーションを削除します(このコールバックは、プルが成功かエラーかに関係なく実行されます)。それに応じて、成功/エラーのコールバックで他のことをしたいかもしれません。

あなたは <div id="test">タグ内にネスト <a>タグを​​機能が完了するか、AJAX呼び出しのコールバック関数で <a>タグを削除/非表示するためのコードを追加したときに、それが削除されますので、どちらかの可能性

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

+0

正直なところ、これは質問に答えません。 'load()'は、彼がやっていることに対して "十分に良い"ものであり、 'ajax()'を使うことは彼の現在のマークアップに基づいて "ロードコンテンツ"を消さないように助けません。 – riwalk

1

に応答を示しています。ここでは、これを達成することができます方法は次のとおりです。

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("a").click(function(){ 
      // Display a loading message: 
      $("#test").html('<p>Loading...</p>'); 

      // Load our data: 
      $("#test").load('test.php', function() { 
       // Code here runs when the load() completes: 
       $("a").hide(); 
      }); 
     }); 
    }); </script> 

<div id="test"></div> <a>Load content</a> 
関連する問題