我有以下。基本上發生的是我正在預填充所有下拉選單/選擇選項。然后我檢索當前記錄的資料并為每個下拉/選擇選項選擇適當的值。
$(dropdowns_sql).each(function (key, value) {
var sql = value.sql;
var dropdown = value.dropdown;
$.post(d '/inc/db.asp', {
type: value.sql
}, function (data) {
json_object = JSON.parse(data);
}).done(function () {
$.each(json_object, function (k, v) {
$('#' dropdown).append($("<option></option>").attr("value", v[sql]).text(v[sql]));
});
});
});
get_record_data();
我的問題是如何確保get_record_data();在回圈完成后運行?如您所見,我在回圈中發出 POST 請求,所以我發現有時這些請求在get_record_data();被呼叫之前沒有完成。
我確實嘗試過:
$( document ).ajaxStop(function() {
get_record_data();
});
但是,由于get_record_data();也在執行 AJAX 請求,我發現它只是進入了無限回圈
function get_record_data() {
$.post(d '/inc/db.asp', {
type: 'get_record',
id: complex_record_id
}, function (data) {
...
有什么建議?我也需要對 IE11 的支持。
謝謝。
uj5u.com熱心網友回復:
了解 dropdowns_sql 中有多少元素,創建一個 count var 并將 get_record_data 呼叫包含在最后一個元素的 done 函式中。
就像是:
var count = dropdowns_sql.length;
$(dropdowns_sql).each(function (key, value) {
var sql = value.sql;
var dropdown = value.dropdown;
$.post(d '/inc/db.asp', {
type: value.sql
}, function (data) {
json_object = JSON.parse(data);
}).done(function () {
$.each(json_object, function (k, v) {
$('#' dropdown).append($("<option></option>").attr("value", v[sql]).text(v[sql]));
});
if (!--count) get_record_data();
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438490.html
標籤:javascript jQuery 循环 每个
上一篇:將vba中的回圈變數傳遞給ActiveChart.SetSourceDataSource:=Range[...]
下一篇:矩陣行的平方和
