クリック ハンドラーに関連付けられたボタンがあります。これは、配列内のアイテムの数に応じて、1 つまたは複数の AJAX 呼び出しを行います。blockUI jquery プラグインを使用して、ajax 呼び出しが行われている間にメッセージを表示してから、結果を表示し、$.unblockUI(); を呼び出して blockUI メッセージを削除します。
問題: なんらかの理由で、ajaxCall 関数を何度実行しても、最初の ajax 呼び出しが完了した後、ループがまだ実行されていてもメッセージが削除され、結果が #results div に正しく表示されます。メッセージングを削除する前にループの反復をすべて完了させたいのですが、順番に実行されていないようです。問題のコードは次のとおりです。
$("#myButton").live("click", function(){
$.blockUI({ message: '<img src="new_loader.gif" /><h2>Getting Config Files</h2><small>Please be patient.</small>',
css: {
border: 'none',
padding: '15px',
backgroundColor: '#FFF',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
color: '#000'
}
});
for (var i=0; i< myArray.length; i++)
{
ajaxCall(myArray[i]);
}
$("#results").show('slow');
$.unblockUI();
return false;
});
ループがまだ完了していないにもかかわらず、ループが実行された後のコードが実行される理由についての説明はありますか? どんな助けでも感謝します!ありがとう。