我有一个jQuery .each
语句循环通过一组accordion / panels
$("div.section-data-source").each(function () {
populateAccordion($(this));
});
对于每个元素,我调用一个函数(populateAccordion
),该函数具有AJAX查询,并且具有自己的done()回调。
如何让我的每个函数等到populateAccordion()
函数完成后再继续下一次迭代?我可以延迟对函数本身 - 或者是否有一种方法让函数告诉每个函数迭代?
function populateAccordion(el) {
var apiName = el.attr("data-source-api-name");
$.ajax({
type: 'GET',
url: api_URL + apiName + "/" + id,
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function(data) {
el.parent().find('.data-field').map(function () {
apiDataField = $(this).attr("data-field");
var itemValue = getApiDataValue(data, apiDataField, "Date");
$(this).text(itemValue);
});
});
console.log("FINISHED POPULATE");
};