gpt4 book ai didi

google-maps - 新手javascript范围问题

转载 作者:行者123 更新时间:2023-11-30 13:04:00 24 4
gpt4 key购买 nike

我对范围是什么有所了解,我是 javascript 的新手,并且在我的代码中完全停止了。这是我使用的代码。

function initialize() {
var mapOptions = {
center: new google.maps.LatLng(37.775057,-122.419624),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
function clicked(id) {
$.ajax({
type: "GET",
url: 'response.php',
data: {id: id},
success: function (lats) {
var obj = $.parseJSON(lats);
var line = [];
for (var i = obj.length - 1; i >= 0; i--) {
line.push(new google.maps.LatLng(obj[i].latitude, obj[i].longitude));
};
var polyPath = new google.maps.Polyline({
path: line,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
polyPath.setMap(map);
console.log(polyPath);
}
});
return false;
}

不用说它的谷歌地图。问题是由于作用域,javascript 无法访问绘制多段线所需的 map 变量。非常感谢您的帮助!

最佳答案

因为 map 是在函数 initialize 中声明的,所以 clicked 无法访问它,你需要在 initialize 之外声明它,比如

var map = null;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(37.775057,-122.419624),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
function clicked(id) {
$.ajax({
type: "GET",
url: 'response.php',
data: {id: id},
success: function (lats) {
var obj = $.parseJSON(lats);
var line = [];
for (var i = obj.length - 1; i >= 0; i--) {
line.push(new google.maps.LatLng(obj[i].latitude, obj[i].longitude));
};
var polyPath = new google.maps.Polyline({
path: line,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
polyPath.setMap(map);
console.log(polyPath);
}
});
return false;
}

现在 clicked 可以访问它,因为它在 initialize 范围之外

关于google-maps - 新手javascript范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16355892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com