午後、私は 1 つの関数を実行する必要があるという問題に直面しています。それが終了したら、次の関数を実行し、これを 4 つの関数に対して実行します。レイアウトするための正しい構文を見つけようとして、しばらくこれに取り組んでいました。私の関数が呼び出され、この特定のシナリオに対処するものを見つけることができないようです。
html:
<div id = "putcontenthereafterajax">
</div><!--end putcontenthereafterajax-->
<div id = "putfooterhereafterajax">
</div<!--end putfooterhereafterajax-->
jquery:
$(window).load(function() {
function preload(arrayOfImages) {
$(arrayOfImages).each(function(){
$('<img/>')[0].src = this;
//alert("I cached "+this+"");
});
$('#progressbarinner').css("width","200px");//change the width of the inner progress bar div
}
function changecss(){
$('.hidetillcache').css("visibility","visible");//make the page visible
$('#loadingscreen').fadeOut("slow");
}
function contentajax(){
$.post("templates/content.php",
{
whatamidoing:"imgettingthecontent"
},
function(data){
$('#putcontenthereafterajax').after(''+data+'');
$('#progressbarinner').css("width","400px");//change the width of the inner progress bar div
});
}
function footerajax(){
$.post("templates/footer.php",
{
whatamidoing:"imgettingthefooter"
},
function(data){
$('#putfooterhereafterajax').after(''+data+'');
$('#progressbarinner').css("width","500px");//change the width of the inner progress bar div
});
}
preload([
'images/careers.jpg',
'images/careers.png',
'images/contact.jpg',
'images/facebook.png',
'images/footer.png',
'images/footerblack.png',
'images/footergrey.png',
'images/home.jpg',
'images/media.jpg',
'images/media.png',
'images/myitv3.jpg',
'images/newindex.jpg',
'images/newindex.png',
'images/services.jpg',
'images/twitter.png'
], contentajax(), footerajax(), csschanges());
});
基本的に、各関数が終了すると少しいっぱいになるローディングバーがあり、各関数を正しい順序で次々に実行する必要があります。すべての関数が機能し、キャッシングとajax、さらにはcssの変更が機能します. ただし、ローディングバーを補完するために、それらを正しい順序で強制し、前のものが完了するまで実行を待つ方法を見つけることができないようです。誰にもアイデアはありますか?