我正试图让我的jQuery在这个流程中工作:
但是到目前为止,我无法在第一个循环完成后调用另一个函数,因为在填充页面之前会调用该函数。如何完成填充循环,然后调用另一个函数?
我感谢你能给我的任何帮助。你还可以学习。
function test() {
var i;
for(i=0;i<=10;i++) {
$("div#test").append("<div id='"+i+"'></div>");
}
when_loop_is_done();
}
function when_loop_is_done() {
var i;
for(i=0;i<=10;i++) {
$("div#test div#"+i).append("<span>foo</span>");
}
}
基本上我从服务器上的一个单独的页面抓取JSON,然后使用该JSON对象中的变量循环并填充内容。问题是无论我做什么,第二个函数总是在jQuery填充内容之前被调用。因此,如果我在循环完成后调用警报,页面将弹出警报,然后加载所有附加的html。
答案 0 :(得分:1)
将结果存储在变量或属性中。然后,使用$(document).ready(fn)
等待页面完成加载并填充页面或在加载完成后完成工作。
答案 1 :(得分:0)
您的代码应如下所示:
$.getJSON('/remote.json', function (response) {
// do the first loop using the response json
})
.done(function () {
// do the second json request and loop through the results
});
在done()方法的回调函数中调用的任何代码都将等到链中的前一个方法完成。您一定要查看$ .getJSON的API文档:https://api.jquery.com/jquery.getjson/