【发布时间】:2016-08-20 11:34:59
【问题描述】:
我有一个简单的jquery loop。在这个循环中,我打电话给jquery function。但这里发生的是functions 被称为paralally。当previous function 仍然调用running 时,循环再次调用same function。因此,只有最后一次function 调用才会输出properly。一旦先前的function 调用被执行completely,我如何调用jquery 或javascript 函数?
这是我的循环
$("select.project_dp").each(function(index) {
populate_tasks($(this));
});
这里是函数定义。
function populate_tasks(project_dp) {
alert("asdfsdfasdfa");
project_id = project_dp.val();
next_td = project_dp.parent().next( "div" ).find("select");
customer_div = project_dp.parent().next( "div" ).next( "div" ).find(".customer_hidden");
start_time = project_dp.parent().next( "div" ).next( "div" ).next( "div" ).find(".start_time");
end_time = project_dp.parent().next( "div" ).next( "div" ).next( "div" ).next( "div" ).find(".end_time");
hrs_dp = project_dp.parent().next( "div" ).next( "div" ).find(".hrs_dp");
mins_dp = project_dp.parent().next( "div" ).next( "div" ).find(".mins_dp");
next_td.empty();
$.ajax({
type: "GET",
url: '/log_times/populate_tasks',
dataType: "JSON",
data: {proj_id: project_id },
success:function(data) {
console.log(data);
next_td.empty();
customer_div.val(data.cust_id)
jQuery.each(data.tasks,function(i, v) {
next_td.append($('<option value="'+ data.tasks[i]["id"] +'">'+data.tasks[i]["name"] +'</option>'));
});
if (data.project.hrs_calc_criteria == "By Duration") {
hrs_dp.prop('disabled', false);
mins_dp.prop('disabled', false);
start_time.prop('disabled', true);
end_time.prop('disabled', true);
} else if (data.project.hrs_calc_criteria == "By Start & End Time") {
hrs_dp.prop('disabled', true);
mins_dp.prop('disabled', true);
start_time.prop('disabled', false);
end_time.prop('disabled', false);
}
}
});
}
【问题讨论】:
标签: javascript jquery function callback synchronous