我希望在document.ready
获得成功后调用ajax
函数。
在jsondatachart.js
脚本中我使用了一个ajax方法,在其中我从excel表中获取数据并存储在窗口。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函数之后,success函数才会生效。所以主页面中使用的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)
});
简单来说,
我希望只有在ajax中的成功函数被触发后才应调用$(function(){})
,以便我可以在window.ChartData
函数中使用document.ready()
。
提前致谢
答案 0 :(得分:2)
首先,请理解这两件事之间的差异,
文档 .ready和 ajax 完全是independent
。它们用于不同目的。
dom
完全加载时,会调用document.ready 函数。它与 ajax 没有任何关联。
Ajax 用于从Server side
获取数据。
如果您需要对ajax success
执行任何操作,请执行以下操作,
$( document ).ready(function() {
alert("DOM is ready");
});
function ajaxFunction(){
$.ajax({
type: 'POST',
url: "Your URL",
data : "param="+"paramValue",
dataType: 'html',
success: function(result) {
doWhatEver();
},
error: function(e){
//alert('Error in Processing');
}
});
}
function doWhatEver() {
// Do your work Here.
}
希望它有所帮助。