function genTask(elem){
elem.each(function(){
$this=$(this).parent(\'.cntTasks\');
var pattern=/taskId-(.*)$/
var idTask=$this.attr(\
Option 1: Switch to next element in your array in the success
handler.
Option 2: Make ajax requests synchronously:
global:
$.ajaxSetup({ async: false });
or directly in the request:
$.ajax({
async: false,
type: "POST",
url: domain+"/view_tasks/gen_tasks/",
dataType: 'html',
data: data,
success: function(dt){
$this.find('.contChildTasks').html(dt);
childs = $this.children('.taskDesc').find('.has_child');
if(childs.length != 0) {
genTask(childs);
}
}
});
In your $.ajax
call add async: false
and it will send a blocking request.
try putting ajaxsetup({async:false});
before your each loop
then after the loop reset it back to true so your future ajax request can still be async
Set async
to false on the $.ajax
call.