我遇到了一些jQuery代码问题。
使用$ .each我循环几个值并调用一些PHP代码。在$ .each循环结束后,我想加载一个包含特定内容的div。我已经尝试在$ .each语句之后加载div,但仍然首先执行load语句,显示错误的值。当我把这个负载放在$ .each中时它会起作用,虽然它在每次迭代后加载而不是在最后加载。有什么想法吗?
以下是我的代码的相关部分:
$.each(steps, function(n,step){
$.post("utility.php", {
utility: "getStepValue",
step: step
},
function(data) {
// offset clock
var step_value = data;
$.post("utility.php", {
utility: "offsetClock",
step_value: step_value
},
function(data){
// when load statement inserted here, it works fine
});
});
}
});
// this statement finishes before the $.each, showing the wrong value
$("#clock").load("utility.php", {
utility: "displayClock"
});
答案 0 :(得分:1)
获取steps
的数量。然后,只有当前索引与步数相同时,才在循环中的第二个回调中执行$("#clock").load("utility.php" ...
- 1.这样的事情:
var count = steps.length;
$.each(steps, function(n,step){
$.post("utility.php", {
utility: "getStepValue",
step: step
},
function(data) {
// offset clock
var step_value = data;
$.post("utility.php", {
utility: "offsetClock",
step_value: step_value
},
function(data){
if(n == count - 1){
$("#clock").load("utility.php", {
utility: "displayClock"
});
}
});
});
}
});