我有点困惑,我有一个 setTimeout(),它有一个 $.each 函数,每 5 秒为每个 slider 设置动画。 (发生这种情况是因为 $.each 函数中的另一个 setTimeout()。
Now i'm wondering how I can run my populateGraph() function after the setTimeout and the $.each are completed, I tried the following but it runs at the same time
setTimeout(function() {
$.each(data, function(i, v) {
setTimeout(function() {
$(".slider#" + v.id).slider("value", globalcoachscores[i]);
}, 500 + (500 * i));
});
populateGraph();
}, 500);
谢谢!
最佳答案
您在最后一次 setTimeout 调用之后调用populateGraph()
,诀窍在于,知道最后一次是哪个:
setTimeout(function() {
var currentCount = data.length;
$.each(data, function(i, v) {
setTimeout(function() {
$(".slider#" + v.id).slider("value", globalcoachscores[i]);
//decrease currentCount by one
currentCount--;
//if currentCount is at 0, then we know we've completed the last setTimeout
if(!currentCount) {
populateGraph();
}
}, 500 + (500 * i));
});
}, 500);
关于javascript - 在 setTimeout() 中的 $.each 之后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30481994/