Ajax 获取函数外部json请求的变量(jquery)
问这个问题我觉得很愚蠢,但是我怎么能在函数外得到变量crdnts呢Ajax 获取函数外部json请求的变量(jquery),ajax,json,jquery,Ajax,Json,Jquery,问这个问题我觉得很愚蠢,但是我怎么能在函数外得到变量crdnts呢 $(function() { var coordinates = { LoadDefault: function() { $.getJSON('http://api.wipmania.com/jsonp?callback=?', '', function(json) { var crdnts = json.latitude + "," + json
$(function() {
var coordinates = {
LoadDefault: function() {
$.getJSON('http://api.wipmania.com/jsonp?callback=?', '', function(json) {
var crdnts = json.latitude + "," + json.longitude;
//alert(crdnts);//this works
return crdnts;
});
}
};
alert(coordinates.LoadDefault());//I would like to get the crdnts variable here.
});
或
你不能。Ajax调用是异步的,因此无法预测它何时返回 您唯一能做的就是在成功回调中使用它,或者如果它是一个选项(在本例中,所有JS执行都将等待请求完成) 例如,您可以在Ajax调用成功完成时调用函数:
$(function() {
var coordinates = {
LoadDefault: function() {
$.getJSON('http://api.wipmania.com/jsonp?callback=?', '', function(json) {
var crdnts = json.latitude + "," + json.longitude;
callSomething(crdnts);
});
}
};
function callSomething(x) {
alert(x);
}
});
javascript ajax是异步的。因此,您需要使用回调:
$(function() {
var coordinates = {
LoadDefault: function() {
$.getJSON('http://api.wipmania.com/jsonp?callback=?', '', function(json) {
var crdnts = json.latitude + "," + json.longitude;
call_alert(crdnts); //callback
});
}
};
function call_alert(cr){
alert(cr);
}
coordinates.LoadDefault();
});
这是因为Ajax是异步的。通常的方法是将
警报()。我认为,由于异步的性质,这是不可能的,但我不知道如何做这个回调函数。