Javascript 单击标记时如何关闭所有打开的信息窗口?
可能重复:Javascript 单击标记时如何关闭所有打开的信息窗口?,javascript,google-maps,google-maps-api-3,infowindow,Javascript,Google Maps,Google Maps Api 3,Infowindow,可能重复: 我花了好几个小时想弄清楚怎么做,但似乎还没有接近一个解决方案。请参阅下面我的代码: function initialize() { var latlng = new google.maps.LatLng(50.71608,-1.993761); var settings = { zoom: 14, center: latlng, mapTypeControl: true, mapTypeControlOptions:
我花了好几个小时想弄清楚怎么做,但似乎还没有接近一个解决方案。请参阅下面我的代码:
function initialize() {
var latlng = new google.maps.LatLng(50.71608,-1.993761);
var settings = {
zoom: 14,
center: latlng,
mapTypeControl: true,
mapTypeControlOptions: {style:
google.maps.MapTypeControlStyle.DROPDOWN_MENU},
navigationControl: true,
navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), settings);
var contentString = '<div>'+
'<p><strong>name</strong></p>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var contentString2 = '<div>'+
'<p><strong>name</strong></p>'+
'</div>';
var infowindow2 = new google.maps.InfoWindow({
content: contentString2
});
var contentString3 = '<div>'+
'<p><strong>name</strong></p>'+
'</div>';
var infowindow3 = new google.maps.InfoWindow({
content: contentString3
});
var oldIcon = new google.maps.MarkerImage('images/maplogo.png',
new google.maps.Size(100,50),
new google.maps.Point(0,0),
new google.maps.Point(50,50)
);
var oldShadow = new google.maps.MarkerImage('images/mapshadow.png',
new google.maps.Size(100,50),
new google.maps.Point(0,0),
new google.maps.Point(50, 50)
);
var old = new google.maps.LatLng(50.714110196782485,-1.9864332675933838, 3);
var oldMarker = new google.maps.Marker({
position: old,
map: map,
icon: oldIcon,
shadow: oldShadow,
title:"title",
animation: google.maps.Animation.DROP
});
var hamIcon = new google.maps.MarkerImage('images/maplogo.png',
new google.maps.Size(100,50),
new google.maps.Point(0,0),
new google.maps.Point(50,50)
);
var hamShadow = new google.maps.MarkerImage('images/mapshadow.png',
new google.maps.Size(100,50),
new google.maps.Point(0,0),
new google.maps.Point(50,50)
);
var ham = new google.maps.LatLng(50.71584417870842,-2.006630301475525, 1);
var hamMarker = new google.maps.Marker({
position: ham,
map: map,
icon: hamIcon,
shadow: hamShadow,
title:"title",
animation: google.maps.Animation.DROP
});
var centreIcon = new google.maps.MarkerImage('images/maplogo.png',
new google.maps.Size(100,50),
new google.maps.Point(0,0),
new google.maps.Point(50,50)
);
var centreShadow = new google.maps.MarkerImage('images/mapshadow.png',
new google.maps.Size(100,50),
new google.maps.Point(0,0),
new google.maps.Point(50,50)
);
var centre = new google.maps.LatLng(50.71712636698597,-1.9832682609558105, 2);
var centreMarker = new google.maps.Marker({
position: centre,
map: map,
icon: centreIcon,
shadow: centreShadow,
title:"title",
animation: google.maps.Animation.DROP
});
google.maps.event.addListener(oldMarker, 'click', function() {
infowindow.open(map,oldMarker);
});
google.maps.event.addListener(hamMarker, 'click', function() {
infowindow2.open(map,hamMarker);
});
google.maps.event.addListener(centreMarker, 'click', function() {
infowindow3.open(map,centreMarker);
});
}
函数初始化(){
var latlng=新的google.maps.latlng(50.71608,-1.993761);
变量设置={
缩放:14,
中心:拉特林,
mapTypeControl:true,
mapTypeControlOptions:{样式:
google.maps.MapTypeControlStyle.DROPDOWN_MENU},
导航控制:对,
navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL},
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),设置);
var contentString=''+
“名称”+
'';
var infowindow=new google.maps.infowindow({
内容:contentString
});
var contentString2=''+
“名称”+
'';
var infowindow2=新建google.maps.InfoWindow({
内容:contentString2
});
var contentString3=''+
“名称”+
'';
var infowindow3=新建google.maps.InfoWindow({
内容:contentString3
});
var oldIcon=new google.maps.MarkerImage('images/maplogo.png',
新谷歌地图大小(100,50),
新google.maps.Point(0,0),
新谷歌地图点(50,50)
);
var oldShadow=new google.maps.MarkerImage('images/mapshadow.png',
新谷歌地图大小(100,50),
新google.maps.Point(0,0),
新google.maps.Point(50,50)
);
var old=new google.maps.LatLng(50.714110196782485,-1.9864332675933838,3);
var oldMarker=new google.maps.Marker({
职位:老,
地图:地图,
图标:oldIcon,
影子:老影子,
标题:“标题”,
动画:google.maps.animation.DROP
});
var hamIcon=new google.maps.MarkerImage('images/maplogo.png',
新谷歌地图大小(100,50),
新google.maps.Point(0,0),
新谷歌地图点(50,50)
);
var hamShadow=new google.maps.MarkerImage('images/mapshadow.png',
新谷歌地图大小(100,50),
新google.maps.Point(0,0),
新谷歌地图点(50,50)
);
var ham=new google.maps.LatLng(50.71584417870842,-2.006630301475525,1);
var hamMarker=新的google.maps.Marker({
位置:火腿,
地图:地图,
图标:哈米孔,
影子:哈姆影子,
标题:“标题”,
动画:google.maps.animation.DROP
});
var centreIcon=new google.maps.MarkerImage('images/maplogo.png',
新谷歌地图大小(100,50),
新google.maps.Point(0,0),
新谷歌地图点(50,50)
);
var centreShadow=new google.maps.MarkerImage('images/mapshadow.png',
新谷歌地图大小(100,50),
新google.maps.Point(0,0),
新谷歌地图点(50,50)
);
var center=new google.maps.LatLng(50.71712636698597,-1.9832682609558105,2);
var centreMarker=new google.maps.Marker({
职位:中,
地图:地图,
图标:centreIcon,
影子:森特沙多,
标题:“标题”,
动画:google.maps.animation.DROP
});
google.maps.event.addListener(oldmark,'click',function(){
信息窗口。打开(地图、旧标记);
});
google.maps.event.addListener(hamMarker,'click',function(){
信息窗口2.打开(地图,哈马克);
});
google.maps.event.addListener(centreMarker,'click',function(){
信息窗口3.打开(地图、中心标记器);
});
}
如果有任何帮助,我将不胜感激,因为我还有一个最后期限要赶,而且对javascript的理解也很低
谢谢调用
infowindow.close()
在中单击
回调
您应该能够将您的侦听器替换为:
google.maps.event.addListener(oldMarker, 'click', function() {
infowindow.open(map,oldMarker);
infowindow2.close();
infowindow3.close();
});
google.maps.event.addListener(hamMarker, 'click', function() {
infowindow2.open(map,hamMarker);
infowindow.close();
infowindow3.close();
});
google.maps.event.addListener(centreMarker, 'click', function() {
infowindow3.open(map,centreMarker);
infowindow.close();
infowindow2.close();
});
谢谢你,乔希,成功了。