【发布时间】:2014-03-07 14:25:23
【问题描述】:
我希望在我的ajax 成功后调用document.ready 函数。
在jsondatachart.js 脚本中,我使用了一种ajax 方法,其中我从excel 工作表中获取数据并存储在window.ChartData 中,如下所示。我所有来自 excel 的数据都存储在 window.ChartData 中,但这是在调用 document.ready() 函数之后发生的。
// "jsondatachart.js" 脚本
$.ajax({
type: "GET",
url: "Data.csv",
dataType: "text",
success: function(data) {window.chartData=data;}
});
在html 页面中,我提到了该脚本jsondatachart.js,该脚本被加载并且调试器在$.ajax 中被命中。但是只有在 document.ready 函数执行后才触发成功函数。所以主页中使用的window.ChartData 显示未定义
我在IE 浏览器中遇到了这个问题,在firefox 中它工作正常。
<html>
<head>
<script src="Scripts/jquery-1.10.1.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.globalize.min.js" type="text/javascript"></script>
<script src="Scripts/jsondatachart.js" type="text/javascript"></script>
</head>
<body>
<div id="container"> </div>
<script type="text/javascript" language="javascript">
$(function () {
// var data=window.ChartData; (showing window.ChartData is undefine)
});
简单来说,
我希望 $(function(){}) 应该仅在 ajax 中的成功函数被触发后调用,以便我可以在我的 document.ready() 函数中使用 window.ChartData。
提前致谢
【问题讨论】:
-
文档就绪状态不依赖于 ajax 请求...所有依赖于 ajax 请求返回值的操作都必须在成功处理程序中
-
你应该把需要
window.ChartData的代码放在或者调用成功函数里面。有关如何构建代码的更多信息,请参阅How to return the response from an AJAX call?。 -
请检查我的答案并告诉我。