2009-07-06 8 views
0

私は現在、私の新しいウェブサイトを作っています。 1つのページを使用し、jQueryのアコーディオンメニューを使用してコンテンツを読み込みます。コンテンツは6つの異なるdivで分割され、ページにアクセスするとすぐにすべての読み込みが行われます。リンクをクリックすると、各divを読み込むようにします。ページの読み込み時間を短縮する。ページが読み込まれたときにdivでクリックをロードしないようにするにはどうすればいいですか?

あなたがここに進捗サイトでの私の仕事上のアクションでこれを見ることができます:私はjQueryのスクリプトを作成していなかったと私にはJavaScript/jQueryのでは本当に悪いよ、私は何の手掛かりを持っていないのでhttp://is.gd/1p1Ys

する。だから私はここに誰かが私を助けることができるかと思っています。トップレベルのメニュー項目がクリックされるまで、これらのdivが表示されないようにあなたの説明から、

おかげトン、

ライアン

+0

チェックシンプルなjQueryのソリューションhttp://jsfiddle.net/UPPnL/1/ –

答えて

1

jquery-uiのタブがこの正確なことを行う他の回答に同意しますが、accordian.jsファイルを簡単にハックすることができます...ナビゲーション内のhrefをコンテンツを含む外部HTMLファイルあなたがしたい、つまりHREF = "#のライフストリーム" =>のhref = "lifestream.html"、accordian.jsで、その後

と:

$links.click(function() { 
    var link = this, 
    if(!link.href.match(/^#.*/)) { //if the href doesn't start with '#' 
    loadDiv(link.href); 
    } else { 
    doRestOfFunction(); //everything your script is currently doing. 
    } 
}); 

function loadDiv(href) { 
    $.get(href, function(html) { 
    var newDiv = $(html) 
    $(".panels").append(newDiv); 
    newDiv.hide(); 
    doRestOfFunction(); //same as above 
    } 
} 
+0

ありがとう、accordian.jsにこれをどこに追加するか知っていますか?申し訳ありませんが、もし私が過去10分間ぼんやりとしていたら、メインページのすべての部門の番組を作ることしかできませんでした。ありがとう。 – Ryan

+0

1.ページからすべてのdivを削除します。 2.独自の.htmlファイルに入れます 3. navのhrefsをlifestream.htmlなどを指すように変更します 4. loadDiv()とshowDiv()の2つの関数を作成します 5. loadDiv()=>上記のように 6. showDiv()=>あなたの$ links.click()関数が現在行っていることすべて。 7.変更doRestOfFunction()=> showDiv() – Daniel

+0

すべてのヘルプありがとうございますまだ動作していません= S – Ryan

0

は、それが聞こえます。このような場合は、jqueryを使用してサブメニューdivを開いたときにDOMに挿入することができます。

Javascript/DOM操作に関する適切なチュートリアルは、にあります。

0

アコーディオンコントロールがあなたの後ろにあるかどうかわかりません - JQuery tabsをチェックしてください.Ajax経由でコンテンツを読み込むことができます。これを行う方法の説明はhere

0

動的にコンテンツをロードする場合は、jquery-uiタブを参照することをお勧めします。現在、私はそれを処理するアコーディオンプラグインを見ていません。コンテンツの高さを知る必要があるため、動的なコンテンツを待たなければならないパネルがぎこちなく見えるようにする必要があります。タブは、前進するための最も適切な方法です。

関連する問題