我有一个与单击处理程序相关联的按钮——它会进行一个或多个 AJAX 调用,具体取决于数组中有多少项。我使用blockUI jquery 插件在进行 ajax 调用时显示一条消息,然后显示结果,并通过调用 $.unblockUI(); 删除 blockUI 消息。
问题: 由于某种原因,无论我希望 ajaxCall 函数执行多少次,在 FIRST 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;
});
即使循环尚未完成,是否有解释为什么循环执行后的代码?任何帮助表示赞赏!谢谢。