jQuery -使用全局数组并等待$get加载检索到的数据
jQuery - using global array and wait for $get to load retrieved data?
看了一整天的代码示例,还是不能让它工作。
基本上,我想使用来自四个本地文件的HTML加载数组。然后,我将使用该HTML动态填充div与某种动画滑块。
我的问题是,我似乎不能得到计时器等待html被检索并分配给变量。GET工作得很好,但是变量似乎没有被加载到GET循环之外。
我可以看到asynch GET正确地填充数组,但是元素在循环中仍然未定义。我认为它们是全局变量,所以不应该是这样。
我是jQuery的新手,一直在使用SO作为示例,所以欢迎任何建议-希望这只是一个有经验的javascript编码员的明显修复。
下面是我的代码:
window.standings = new Array(4);
window.iURL = 0;
standingsURL = ["MondayNight.html", "TuesdayNight.html", "WednesdayNight.html", "ThursdayNight.html"]
for (window.iURL = 0; window.iURL < window.standings.length; window.iURL ++) {
$.get(standingsURL[window.iURL], function( data ) {
window.standings[window.iURL] = data;
alert (window.standings[window.iURL]);
}, "text");
}
setTimeout(function repeatTimeout() {
if(window.standings[window.standings.length] !== undefined){
for (window.iURL = 0; window.iURL < window.standings.length; window.iURL ++) {
alert (window.standings[window.iURL]);
}
} else {
alert ("Wait again");
setTimeout(repeatTimeout, 2500);
}
}, 1000);
我能看到的第一个问题是,在您的repeatTimeout
函数中,您引用的数组中不存在的项目。
window.standings[window.standings.length]
等于window.standings[4]
你有一个包含四个元素的数组,你在这里引用了数组索引4——但是数组是零索引的,所以只有索引0、1、2和3是有效的。试一试:
window.standings[window.standings.length - 1]
声明一个空数组:
window.standings = []
代替:window.standings[window.iURL] = data;
,这样做:
window.standings.push(data)
你的if
函数现在检查长度:
if(window.standings.length === 4)
这是一个相对粗糙的解决方案。查看这篇关于when
函数的更多信息。
相关文章:
- 当用$.getScript()加载脚本时,有一种方法可以从用$.get script()装载的脚本中调用父脚本中的函数
- Codeigniter JQuery在JQuery.get请求后动态加载视图中的数据
- JQuery AJAX - 如何使用方法 GET 调用刷新/重新加载页面
- 如何使用 GET 和 POST 语句而不使用 PHP/Laravel 重新加载页面
- $.get()加载的图像没有't显示
- 如何通过发送GET和POST的javascript重新加载页面,并附加附加参数
- 使用$.get-Jquery Mobile加载弹出窗口
- 如何在CasperJS脚本中通过get-int变量加载JSON
- XMLHttpRequest无法加载http://localhost:3000/get.
- 流星铁路由器 - 如何等待(使用加载模板)一个会话.get
- D3 JS - 在没有 HTTP Get 的情况下加载 JSON
- Tinymce 4 正在加载,但显示 tinymce.get 未定义
- 通过 GET URL 加载引导导航导航选项卡
- AngularJS服务,从$html.get返回预加载的数据或数据
- 从 $http.get 加载手风琴组使用 AngularJS 打开.
- 角度 - 在页面加载时触发$http.get
- Angularjs $http.get 调用在页面加载时出错
- jQuery onClick 通过 GET 传递变量到 URL 并加载该 URL
- 如何调用chrome.storage.sync.get并在页面加载时分配变量
- 在加载$http-get图像之前显示加载覆盖