Google maps api 3 用onclick javascript关闭信息窗口谷歌地图
我试图做一些非常简单的事情,但是搜索结果是空的,出于某种原因我无法解决这个问题(我是一个JS初学者)。我正试图关闭一个带有onclick标记的信息窗口。我知道你可以通过点击“x”来关闭它,但其目的是更深层次的 我的代码:Google maps api 3 用onclick javascript关闭信息窗口谷歌地图,google-maps-api-3,infowindow,Google Maps Api 3,Infowindow,我试图做一些非常简单的事情,但是搜索结果是空的,出于某种原因我无法解决这个问题(我是一个JS初学者)。我正试图关闭一个带有onclick标记的信息窗口。我知道你可以通过点击“x”来关闭它,但其目的是更深层次的 我的代码: function placeMarker(location) { marker = new google.maps.Marker({ position: location, map: map, }); var infowindow = new g
function placeMarker(location) {
marker = new google.maps.Marker({
position: location,
map: map,
});
var infowindow = new google.maps.InfoWindow({
content: "<a href='#' id='link' onclick='infowindow.close()'>Close</a>"
});
infowindow.open(map,marker);
}
功能位置标记(位置){
marker=新的google.maps.marker({
位置:位置,,
地图:地图,
});
var infowindow=new google.maps.infowindow({
内容:“”
});
信息窗口。打开(地图、标记);
}
这样的事情可能吗?谢谢您不需要像现在这样的紧密链接
onclick='infowindow.close()
。InfoWindow对象已具有“关闭”图标X
要确保在任何给定时间只打开一个InfoWindow,请将其设置为单个全局对象,并以关联的标记作为参数打开:
//Global
var infowindow = new google.maps.InfoWindow({});
然后
function placeMarker(location) {
marker = new google.maps.Marker({
position: location,
map: map,
});
infowindow = new google.maps.InfoWindow({
position: location,
content: "Hello from this marker"
});
infowindow.open(map,marker);
}
是的,您的实施将按照您列出的方式工作,前提是:
infowindow
变量是全局变量(在任何函数之外定义)假设您可能有多个infoWindow实例(使用当前代码,在多次调用函数时会发生这种情况): 您需要使用节点而不是字符串作为
内容
。当您这样做时,您将能够在函数中使用对infowindow的引用(闭包),并使用adddomstener
分配click函数:
function placeMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map,
}),
infowindow = new google.maps.InfoWindow(),
content = document.createElement('a');
content.setAttribute('href','#');
content.appendChild(document.createTextNode('close'));
google.maps.event.addDomListener(content,'click',
function(){infowindow.close();})
infowindow.setContent(content);
infowindow.open(map,marker);
}
OP特别提到X关闭图标不够。@ChadKillingsworth,我看到了,但我无法想象“更深”的目的是什么。:-)