2009-09-11 13 views
0

I'am本当に混乱し、上取得する方法がわからない、おそらくあなたは私を助けることができます:)jQueryのコールバックと入れ子の問題

I'eがに外部コンテンツをロードするメニューで、HTMLページを作りましたdiv(すべてjqueryとajax-loadで処理されます)。

もし私が2番目の関数を追加したいのであれば、何も起こらず、私は入れ子について確信が持てません。

最初のものはHTMLページ全体を読み込み、2つ目は前の読み込み済みファイルのdivに外部divを読み込みます(私はあなたがそれを理解できるように記述します:))(numRandは乱数、質問には重要ではない)。

someFunction(menupunkt,submenupunkt,subdiv) 
:私は関数を呼び出すことができるように、2つの機能を組み合わせたい

function changeSubMenu(submenupunkt,subdiv) { 
    $(function(){ 
     $('#htmlContainer').fadeOut('fast',function(){ $("#htmlContainer").load(submenupunkt+".html?"+numRand+" div#"+subdiv);}); 
     $('#htmlContainer').fadeIn('fast');}); 
     return false; 

}

function changeMenu(menupunkt) { 
$(function(){ 
    $('#mainContent').fadeOut('fast', function(){ $("#mainContent").load(menupunkt+".html?"+numRand);}); 
    $('#mainContent').fadeIn('fast');}); 
    return false; 

}ここで

は、第二のコードです

これは最初にロードする必要がありますmenupunkt.htmlこのアクションが終了した場合はdivをロードする必要があります。

私はmenupunktとsubmenupunktまたはsubdivをロードしたくない場合、どのように関数を呼び出すことができますか?私はあなたたちはそれに従うことができるように私は私の質問を説明することを願ってい

は、私が

は、事前にありがとう:)知って少し複雑!

答えて

1

すべて

$(function() { .... code here .... }); 

の最初は、DOMがロードされたときに実行する機能を設定するためのjQueryの方法です

$(document).ready(function() { .... code here .... }); 

の省略形です。あなたの関数changeMenuchangeSubMenuの中でこれを使用していますが、これは不要です()。は、ページが読み込まれるとすぐに両方の関数を実行していませんが、それは変わってです。

load()コマンドは、ロードが完了したときに実行されるコールバック関数を使用します。例えば、

$("#mainContent").load(menupunkt+".html?"+numRand, [callback here]); 
[callback]

いずれか匿名関数(インライン関数)または名前付き関数であることができます。

希望すると便利です。