一旦循环完成并且 jQuery 填充内容,Javascript 调用函数
我试图让我的 jQuery 在这个流程中工作:
- 使用 $getJson 解析 json
- 循环返回的 JSON 并为每个 JSON 项目创建 div
- 完成后,重复但使用另一个 json 文件并将结果附加到现有结果。
但到目前为止,我无法在第一个循环完成后调用另一个函数,因为该函数在填充页面之前被调用。如何完成填充循环,然后调用另一个函数?
我很感激你能给我的任何帮助。正如你所知,仍在学习。
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。
I'm trying to get my jQuery to work in this flow:
- Parse json using $getJson
- Loop through returned JSON and create divs for each JSON item
- Once done, repeat but instead with another json file and append the results to the existing results.
But as of now I can't call another function AFTER the first loop is done, because the function gets called before the page is populated. How can I finish the populating loop, and then call another function?
I appreciate any help you can give me. Still learning as you can tell.
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>");
}
}
Essentially I'm grabbing JSON from a separate page on my server, then looping through and populating the content using variables from that JSON object. The issue is no matter what I do, the second function always gets called before jQuery populates the content. So if I were to call an alert after the loop is done the page would pop up the alert and then load in all of the appended html.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将结果存储在变量或属性中。然后,使用
$(document).ready(fn)
等待页面完成加载并填充页面或在加载完成后完成您的工作。Store your results in a variable or property. Then, use
$(document).ready(fn)
to wait for the page to finish loading and populate the page or finish your work when it has finished loading.您的代码应如下所示:
您在 did() 方法的回调函数中调用的任何代码都将等到链中的前一个方法完成。您绝对应该查看 $.getJSON 的 API 文档:https://api.jquery.com/jquery。获取json/
Your code should look something like this:
Any code you call inside the done() method's callback function will wait until the previous method in the chain is complete. You should definitely review the API documentation for $.getJSON: https://api.jquery.com/jquery.getjson/