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