gpt4 book ai didi

javascript - 如何将相同的事件监听器添加到多个标记,然后在 Google Maps API v3 中区分监听器中的标记?

转载 作者:行者123 更新时间:2023-11-30 10:47:03 25 4
gpt4 key购买 nike

我的 Javascript 中的许多标记都有相同的事件监听器。我如何区分此监听器中的不同标记?我想在点击特定标记时在别处显示另一个标记。每个标记都有另一个标记,我会在点击它时显示它。

事件监听器代码:

google.maps.event.addListener(marker, 'click', function() {
//code goes here

});

更多细节:

我有两个数组 markers1markers2,每个数组都有 10 个标记。我在 map 上显示 markers1 中的 10。单击 markers1[0] 标记时,我想在 map 上显示 markers2[0] 标记。我如何在事件监听器中知道我点击了 markers1[0],现在我知道我可以使用 THIS 来识别 markers1[0] 但我如何在监听器中知道它是数组 markers1 中位置 0 处的标记,以便我也可以在数组 markers2 中位置 0 处显示标记>?

最佳答案

您可以轻松地将索引(或任何其他信息)添加到每个标记:

for( var i = 0; i < arrDestinations; i += 1 ) {
var marker = new google.maps.Marker({
title: arrDestinations[i].title,
position: new google.maps.LatLng(arrDestinations[i].lat, arrDestinations[i].lon),
map: map,
myIndex: i // ADDED FIELD: Each marker contains its index
)};
bindInfoWindow(marker,map,infowindow,"<p>arrDestinations[i].description + "</p>");
}

然后在您的事件处理程序中,您可以这样做:

google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(html);
infowindow.open(map, marker);
setVisibility(marker); // ADDED
});

setVisibility 函数类似于上面 150PoundsOfDonamite 所建议的函数,不同之处在于您知道要使其可见的标记的索引:

function setVisible(marker) {
for(var i=0; i<markers1.length; i++) {
if(i==marker.myIndex) {
markers2[i].setVisible(true);
} else {
markers2[i].setVisible(false);
}
}
}

关于javascript - 如何将相同的事件监听器添加到多个标记,然后在 Google Maps API v3 中区分监听器中的标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7705175/

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