2012-04-25 9 views
0

jqueryタブを作成して、コンテンツが空であるかどうかにかかわらずタブボタンを表示または非表示にします。onclickタブの後にコンテンツとコンテンツをロードしないときにタブを非表示にする

ここで、pageloadのために、誰かがタブボタンをクリックしたときにのみコンテンツを読み込みたいと思います。

これは、コードがコンテンツであるかどうかをチェックし、空の場合は、タブを非表示にするには、次のとおりです。

$j(function() { 
    if ($j.trim($j("#CONTENTDIV").html()) == "") { 
     $j("li#TABBUTTON").hide(); 
    } 
}); 

私がクリックしたときに、この負荷コンテンツ作るが、それならば、タブボタンを非表示するにはどうすればよいです内容はありませんか?

+0

タブが非表示の場合、どのようにコンテンツを読み込むためにクリックできますか? –

+0

コンテンツがないため隠されています。私は、コンテンツを表示するタブを持っていますが、そのコンテンツをonclickイベントなどで読み込んでいます。これは可能ですか? – Ruud

+0

これを実行する唯一の方法は、すべてのコンテンツを前もって、好ましくはタブを初期化する前にロードすることです。 –

答えて

2

クリックするまでタブの内容を読み込むのを遅らせる場合は、タブを表示するかどうか(内容はあるかどうか)を知ることができません。

哲学的には、(本質的に)空のページを要求する軽量のAJAX関数を作成すると、データベースフィールドに値があるかどうかを尋ねるだけで、ページ全体ではなくコンテンツがあればtrueを返します。次に、クリックすると内容を取得できます。

を編集します。これはもちろん、ページ全体を取得せずにsome valueを検出できることを前提としています。

リソースのリクエストで全量を取得する必要がある場合でも、サーバーにリソースをユーザーに配信するよりも迅速にリソースにアクセスできる必要があります。特に、リソースが存在する場合チェックを行っているのと同じサーバー。それにもかかわらず、AJAXで行われているので、タブを隠したままにして軽量のAJAX関数が利用可能なコンテンツを検出するので、それらを表示することができます($("#myTabID").show())。

+0

非常に興味深いですが、非常に複雑です。私は現在、ページごとに特定のタブを表示または非表示にするバックエンドのオプションを考えています。タブ上をクリックするだけでコンテンツを表示することができます。 (バックエンドを通してタブが表示されている場合にのみタブをクリックすることが可能です) – Ruud

+0

@SailesHardt;あなたは、あなたが一番良く考えているものとあなたが快適に維持しているものを何でもしなければなりません。あなたがAJAXリクエストを実験して学ぶ時間があれば、あなたはそれらがなくては生きていけないと感じるでしょう。 – veeTrain

関連する問題