2009-08-08 14 views
3

jQueryタブライブラリを使用して、リモート(つまり、ajaxがロードされた)タブのセットを作成しています。初期ページのロード時にjQueryリモートタブの内容を初期化する

しかし、ajaxリクエストが完了するまで最初のページの読み込みが空でないように、最初のページのダウンロードで最初のタブのコンテンツを含めたいと思います。

これは、タブのタイトルに一致する最初のページの読み込みにdivを指定することで一般的に機能しますが、このコンテンツはすぐに表示されますが、タブを初期化するとすぐにajaxリクエストこれは無駄であり、ちらつきを引き起こす。私の基本的な質問は、最初に選択したタブに対してajaxリクエストを実行しないようにjQueryタブを取得し、その他のタブを動的にロードしながら、このコンテンツを最初のページ読み込みの一部として取得する方法です。

最初のタブが利用可能なコンテンツに基づいて変更されるため、タブが「初期」タブであるids/hrefをハードコードできないという問題があります。

タブを初期化する前にjavascriptでタブのURLを動的に書き直すことで、これを行うための何らかのハッキーな方法があると確信していますが、私はよりクリーンなソリューションを探しています。

アイデア?

+0

リモートのものはjqueryタブに組み込まれていないため、現在の場所を見ずに助けてもらえないと思います。 –

答えて

0

これを行うには、特定のタブコントロールを使用していますか?あなたのタブの実装方法にかなり依存しています...

データを遅延ロードなしでインクルードするには、サーバー側を含める必要があります。

もう少し詳細を教えて、私ができることを見てみましょう!

0

サーバーサイドの実装を使用して開始テキストを追加するのが最適な方法です。 JQuery documentationでは、デフォルトのテキストはAJAXから読み込まれません。

私はあなたがやっている正確に何か分からないが、それはあなたのケースでない場合は、単純なブールは「ハック」は、このように使用することができます:

var initial=true; 

次に、あなたのタブコードに:

$('.selector').tabs({ 
    select: function(event, ui) { if(initial) { initial=false; return false; } 
}); 

これは、初めてajax呼び出しを実行することを防ぎます。

0

テキスト、GIFアニメーションなどを表示する「スピナー」というオプションがあります。

$(".selector").tabs({ spinner: 'Retrieving data...' }); 
関連する問題