我根本不懂 javascript,但我设法让地图上的所有东西都能正常工作,除了这一件事。我正在为一个论坛开发一项功能,成员将他们的城市和州发给我,然后我将它们添加到地图中。这是我所拥有的:http://l4ptester.solidwebhost.com/L4p.html 如果您单击几个地图标记,您会看到您可以一次打开任意数量的 infoWindows,而我不希望那样。我只希望一次打开 infoWindow。因此,如果我单击佛罗里达州的一个标记,然后单击加利福尼亚州的一个标记,佛罗里达州的一个就会关闭。
这是我的代码中地图标记的条目:
var InvadermooseLL = new google.maps.LatLng(27.321984,-82.527666);
var contentString =
'<div id="content">'+
'<center> <strong>Invadermoose</strong> </center>'+
'<img src="http://www.luxury4play.com/customavatars/avatar16771_3.gif">'+
'<div id="bodyContent">'+
'<a href="http://www.luxury4play.com/members/invadermoose.html" '+
'target="_blank">Invadermoose's L4P Profile</a>'+
'<br/><font size="2">(Opens in new tab)</font>'+
'City: Sarasota'+
'State: Florida'+
'</div>'+
'</div>';
var InvadermooseIW = new google.maps.InfoWindow({
content: contentString
});
var InvadermooseMKR = new google.maps.Marker({
position: InvadermooseLL,
map: map,
title:"Invadermoose"
});
google.maps.event.addListener(InvadermooseMKR, 'click', function() {
InvadermooseIW.open(map,InvadermooseMKR);
IrelentlessIW.close(map,IrelentlessMKR);
Hollywood85IW.close(map,Hollywood85MKR);
HazeMythIW.close(map,HazeMythMKR);
jagkidIW.close(map,jagkidMKR);
DiegoVIW.close(map,DeigoVMKR);
RaceMindedIW.close(map,RaceMindedMKR);
});
我会稍微解释一下。Invadermoose 是获取地图标记的用户,因此我将其用作 ID 以保持其井井有条。所以 var InvadermooseLL 基本上是 Invadermoose LatLang,InvadermooseMKR 是 Invadermoose Marker。它只是帮助我保持井井有条。
现在,在脚本的底部,我拥有所有的“点击”功能。在我看来,它会关闭其他成员标记,但它不起作用。我在堆栈溢出的某个地方读到这是这样做的方法,但它不起作用。
我基本上为每个拥有地图标记的用户重复相同的代码,我只是将 ID 更改为他们的用户名,并带有我的识别前缀(LL、MKR、IW)和一些“点击”功能。