【发布时间】:2015-12-07 09:47:09
【问题描述】:
我正在尝试从 JQuery 函数中检索数据并将其传递给全局变量以与 Google 地图一起使用。这些变量必须保持全局,否则 Google 地图无法使用它们。我设法从 AJAX url 获取我需要的所有数据,它完美地记录但仅在 Jquery 函数内部。如果我将它记录在它之外,它是未定义的。有没有办法将这些值传递给全局变量?
function displayMarkers() {
var latlng = new google.maps.LatLng(latitd, longtd);
var name = titleName;
createMarker(latlng, name);
}
var latitd;
var longtd;
var titleName;
$(document).ready(function() {
$('#earthquakes').click(function() {
getQuakes();
});
function getQuakes() {
$.ajax({
url: 'http://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=' + yesterDate + '&endtime=' + displayDate,
success: function(data) {
console.log(data);
$.each(data.features, function(key, val) {
var coord = val.geometry.coordinates;
locationD = {
latd: coord[0],
lngd: coord[1]
};
latitd = locationD.latd;
longtd = locationD.lngd;
titleName = val.properties.title;
console.log(latitd, longtd);
console.log(titleName);
});
}
});
}
});
【问题讨论】:
-
把函数定义放在Dom的外面
-
是的,您访问错误。只有在 ajax 成功后,您才会获得 lat,long 值。然后你在另一个函数中使用这些变量
-
感谢您对我投反对票,但没有一个“重复”问题与我的问题有关。
标签: javascript jquery ajax api google-maps