質問
私は本当に混乱しており、乗り方がわかりません。おそらくあなたは私を助けることができます:)
外部コンテンツをdivにロードするメニューを含むhtmlページを作成しました(すべてjqueryおよびajax-loadで実行されます)。
2番目の関数を追加したい場合は何も起こらず、ネストについてはわかりませんが、それが正しいかどうかはわかりません。
次の2つの関数があります。最初の関数はHTMLページ全体をロードし、2番目の関数は外部divを以前にロードされたファイルのdivにロードします(理解できるように説明したいと思います:))(numRand乱数、質問にとって重要ではありません)。
function changeMenu(menupunkt) {
$(function(){
$('#mainContent').fadeOut('fast', function(){ $("#mainContent").load(menupunkt+".html?"+numRand);});
$('#mainContent').fadeIn('fast');});
return false;
}
2番目のコードは次のとおりです。
function changeSubMenu(submenupunkt,subdiv) {
$(function(){
$('#htmlContainer').fadeOut('fast',function(){ $("#htmlContainer").load(submenupunkt+".html?"+numRand+" div#"+subdiv);});
$('#htmlContainer').fadeIn('fast');});
return false;
}
2つの関数を結合して、関数を呼び出すことができます:
someFunction(menupunkt,submenupunkt,subdiv)
これはまずmenupunkt.htmlをロードし、このアクションが終了したらdivをロードする必要があります。
menupunktのみをロードし、submenupunktまたはsubdivはロードしない場合、どのように関数を呼び出すことができますか?
私の質問を説明して、皆さんがフォローできるようにしたいと思いますが、少し複雑です:)
事前に感謝します!
解決
まず第一に
$(function() { .... code here .... });
の略記
$(document).ready(function() { .... code here .... });
これは、DOMがロードされたときに実行する関数を設定するjQueryの方法です。あなたはこれをあなたの関数 changeMenu
と changeSubMenu
の内部で使用していますが、これらは必要ではありません、しかしそれは奇妙な設定方法です)。
load()
コマンドは、ロードが完了すると実行されるコールバック関数を取ります。たとえば、
$("#mainContent").load(menupunkt+".html?"+numRand, [callback here]);
[callback]
は、匿名関数(インライン関数)または名前付き関数のいずれかです。
これが役立つことを願って