【发布时间】:2016-11-12 16:59:34
【问题描述】:
当点击地图外的元素时,我正在尝试打开谷歌地图标记的信息窗口。我已经看到了几个类似的问题,但还没有看到有效的答案。 这是我的代码:
html:
<div id="map_canvas"></div>
<div id="names_div"></div>
脚本:
var locations = [
['Bondi Beach', -33.890542, 151.274856],
['Coogee Beach', -33.923036, 151.259052],
];
var map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 10,
center: new google.maps.LatLng(-33.92, 151.25),
mapTypeControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var names_html = "";
for (i = 0; i < locations.length; i++) {
names_html += " " + "<a href='javascript:myclick(" + locations.length + ")' class='Names'>" + locations[i][0] + " </a> <br> <br>" ;
};
document.getElementById("names_div").innerHTML = names_html;
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
function myclick(i) {
google.maps.event.trigger(locations[i], "click");
}
“names_html +=...”行和“function myclick(i) {...”之间的交互导致了我认为的问题。
此外,我只能让 names_div 的 html 人口与标记循环的单独循环一起工作。这也可能是问题所在!
谢谢,非常感谢您的帮助。
【问题讨论】:
标签: javascript google-maps triggers google-maps-markers infowindow