代码在控制台工作,但加载网站时不工作
Code working in console but not when loading website
我的代码在控制台工作,但在加载网站时不工作。
function getData() {
var a = [];
d3.csv("../csv/master.csv").get(function (error, rows) {
for (var i = 0; i < rows.length; i++) {
a.push(rows[i]);
}
});
return a;
}
a = getData();
alert(a[0].agency);
奇怪的是,变量a似乎是由网站加载的,因为我可以在控制台中调用它,但是警告抛出一个错误。
("Uncaught TypeError: Cannot read property 'agency' of undefined")
但是,当我在控制台中调用完全相同的警报时,它可以完美地工作。
任何想法?
谢谢,
乔纳斯
d3.csv
方法发出异步请求,因此在网站版本中,当您尝试访问数据时,csv文件可能尚未完全加载。您可能应该重新组织您的代码,并将依赖于回调函数中的数据的逻辑。你也可以在数据加载完成时触发一个事件,并让另一个对象监听该事件以开始绘图。
d3.csv('../csv/master.csv', function(error, rows) {
// The data is available here
alert(rows[0].agency);
});
关于d3.csv
的更多信息在文档中。
EDIT:正如@ elclars指出的,之前的代码没有解释张贴的代码需要重新组织,所以我更新了答案
相关文章:
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- 代理一个网站能够在iframe中进行所见即所得编辑-它是如何工作的
- 使用HTML和任何服务器端语言(PHP,.net,ruby)制作的网站是否可以在每个具有浏览器的设备上工作
- Toggle已停止在我的网站上工作
- 谷歌脚本-从网站论坛解析HTML-并将数据写入工作表
- 我可以'我似乎没有得到我的网站'移动导航开始工作
- JavaScript网站与工作实例
- 如何在node.js的帮助下使用网站在localhost上工作
- 如何使Asp.net网站同时在IE 11(非可比模式)和IE 8中工作
- 缓存以使我的网站离线是't工作
- jsFiddle工作,网站JS不工作
- 代码在 jsfiddle 中工作,但在我的网站上不起作用
- 我的jQuery在JSFiddle中工作,但不能在我的网站上工作!我做错了什么
- CSS 在基于 URL 上工作,但不在网站的其他页面中使用.代码点火器
- JavaScript不能在一个网站上工作,但在另一个网站上很好
- 如何让Jsfiddles在网站上工作
- 我的Wordpress网站上的所有jQuery脚本都无法正常工作
- 当我将我的网站移动到在线测试服务器时,“添加到购物车”按钮停止工作
- “赞”按钮和“赞”框不仅显示在我网站的某些页面上.其余部分工作正常
- 如何使Facebook喜欢检测在我的网站上工作