У меня есть кнопка, привязанная к обработчику кликов, который делает один или несколько вызовов AJAX, в зависимости от того, сколько элементов находится в массиве. Я использую плагин jquery blockUI, чтобы показать сообщение во время вызова(ов) ajax, затем Я показываю результаты и удаляю сообщение blockUI, вызывая $.unblockUI();.
Проблема: по какой-то причине, независимо от того, сколько раз я хочу, чтобы функция ajaxCall выполнялась, после завершения ПЕРВОГО вызова ajax обмен сообщениями удаляется, хотя цикл все еще продолжает выполняться, и отображаются результаты. правильно в разделе #results. Я хочу, чтобы полное количество итераций цикла завершилось перед удалением сообщений, но похоже, что оно не выполняется последовательно. Вот рассматриваемый код:
$("#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;
});
Есть ли объяснение, почему код ПОСЛЕ цикла выполняется, хотя цикл еще не завершен? Любая помощь приветствуется! Спасибо.