gpt4 book ai didi

javascript - 谷歌地图信息窗口未在点击事件中打开

转载 作者:行者123 更新时间:2023-12-03 23:49:05 26 4
gpt4 key购买 nike

我在使用 google maps api (v3) 和 InfoWindows 时遇到一些问题,在它们附加到的标记的单击事件上没有打开。当我调试 javascript 时,Markers 和 InfoWindows 看起来已经正确创建,所以我假设在添加 click 事件监听器时我做错了。

下面是添加标记等的地方。谁能看到问题可能是什么?

$.post("/Club/SearchClubsByLocation", { latitude: searchLat, longitude: searchLng },
function (clubs) {
$.each(clubs, function (i, club) {
var LL = new google.maps.LatLng(club.Latitude, club.Longitude);
pointArray.push(LL);

var infoWindow = new google.maps.InfoWindow({
content: club.ClubName + " HELLO!!!"
});

var marker = new google.maps.Marker({
map: map,
position: LL
});

google.maps.event.addListener(marker, 'click', function () {
infowindow.open(map, marker);
});

markerArray.push(marker);
});

for (i in pointArray) {
bounds.extend(pointArray[i]);
}

map.fitBounds(bounds);
pointArray = [];
},
"json"
);

感谢您的任何建议,

富有的

最佳答案

我终于通过在 post 函数之外创建一个 InfoWindow 并将单击监听器添加到标记以打开 InfoWindow 的函数来解决它

$.post("/Club/SearchClubsByLocation", { latitude: searchLat, longitude: searchLng },
function (clubs) {
$.each(clubs, function (i, club) {
var LL = new google.maps.LatLng(club.Latitude, club.Longitude);
pointArray.push(LL);

var marker = new google.maps.Marker({
map: map,
position: LL
});

addInfoWindow(marker, club.ClubName);

markerArray.push(marker);
});

for (i in pointArray) {
bounds.extend(pointArray[i]);
}

map.fitBounds(bounds);
pointArray = [];
},
"json"
);

function addInfoWindow(marker, content) {
var infoWindow = new google.maps.InfoWindow({
content: content
});

google.maps.event.addListener(marker, 'click', function () {
infoWindow.open(map, marker);
});
}

看来您需要一个单独的函数来添加多个 InfoWindows,如此处所示

Event Closures

干杯

富有的

关于javascript - 谷歌地图信息窗口未在点击事件中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4933050/

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