我搜索了类似的问题,但没有找到,如果我错过了一个道歉。
我正在尝试学习创建最近点击的针脚上显示的信息窗口的功能,并提取相关信息。
问题在于,无论我点击哪个针脚,infowindow总会出现在同一个针脚上('酷事件5'在下面的代码中)。
var locations = [
['Cool event 1', 33.890542, 151.274856, 'address 1'],
['Cool event 2', 33.923036, 151.259052, 'address 2'],
['Cool event 3', 34.028249, 151.157507, 'address 3'],
['Cool event 4', 33.80010128657071, 151.28747820854187, 'address 4'],
['Cool event 5', 33.950198, 151.259302, 'address 5']
];
我猜测它是标记代码的问题:
marker.addListener('click', function() {
infowindow.open(map, marker);
});
var marker = new google.maps.Marker({
position: latlngset,
map: map,
title: event
});
中找到完整代码
的Ta!
编辑:我上传了错误版本的jsfiddle,现已修复
答案 0 :(得分:0)
编辑:像这样:http://jsfiddle.net/7yceq7jq/
在onClick功能中,您必须指定(由客户端)点击了哪个标记。
这是一种方式:
<script>
var markers = []; // put this global, or at least make sure the variable is accessible to the rest of your code
...
var marker = new google.maps.Marker({
...
});
// now push this marker on the array
markers.push(marker);
...
marker.addListener('click', function(e) {
var index = markers.indexOf(this); // if index = 0 => first marker; ...
// set content
infowindow.setContent = locations[index][0] ; // this adds the name of the location, feel free to add more stuff
infowindow.open(map, markers[index]);
})
</script>
让我知道它是否有效