我试图通过ajax将经度和纬度调入他们自己的变量,以便我可以在请求中使用它们来制作DarkSky API。我知道它们是本地的,因此无法在ajax功能之外访问,但我无法为我的生活找到解决方法。这是我的代码:
$(document).ready(function() {
//location API
$("#myweather").load("window",function() {
$("#location").fadeOut(function() {
$.ajax({
async: false,
url: "https://geoip-db.com/jsonp",
jsonpCallback: "callback",
dataType: "jsonp",
success: function(loc) {
$("#location").html(loc.city)
var long = loc.longitude
var lat = loc.latitude
}
});
}).fadeIn();
});
$("#result").load("location", function() {
$("#result").fadeIn(function() {
$.getJSON("https://api.darksky.net/forecast/15f8bf5641489ec32f66662221933c14/" + lat + long, function(forecast) {
consolelog(forecast);
});
});
});
});
答案 0 :(得分:1)
试试这个:
lat
如果您在ajax调用之外声明long
和$.getJSON
,它将可用于其他函数,但在{{1}时可能 被称为。
答案 1 :(得分:0)
你应该在函数之外声明这两个变量,如下所示:
$(document).ready(function() {
//location API
var long = '';
var lat = '';
$("#myweather").load("window",function() {
$("#location").fadeOut(function() {
$.ajax({
async: false,
url: "https://geoip-db.com/jsonp",
jsonpCallback: "callback",
dataType: "jsonp",
success: function(loc) {
$("#location").html(loc.city)
long = loc.longitude
lat = loc.latitude
}
});
}).fadeIn();
});
$("#result").load("location", function() {
$("#result").fadeIn(function() {
$.getJSON("https://api.darksky.net/forecast/15f8bf5641489ec32f66662221933c14/" + lat + long, function(forecast) {
consolelog(forecast);
});
});
});
});
答案 2 :(得分:0)
尝试:
$(document).ready(function() {
var long, lat;
//location API
$("#myweather").load("window",function() {
$("#location").fadeOut(function() {
$.ajax({
async: false,
url: "https://geoip-db.com/jsonp",
jsonpCallback: "callback",
dataType: "jsonp",
success: function(loc) {
$("#location").html(loc.city)
long = loc.longitude
lat = loc.latitude
}
});
}).fadeIn();
});
$("#result").load("location", function() {
$("#result").fadeIn(function() {
$.getJSON("https://api.darksky.net/forecast/15f8bf5641489ec32f66662221933c14/" + lat + long, function(forecast) {
consolelog(forecast);
});
});
});
});
然后,变量将在文档就绪函数的整个范围内可用
答案 3 :(得分:-1)
在没有var
的情况下全局声明2个变量