Javascript 鼠标悬停,鼠标悬停,点击谷歌地图上的同一个标记

Javascript 鼠标悬停,鼠标悬停,点击谷歌地图上的同一个标记,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,当我将鼠标悬停在鼠标上方时,会打开一个信息窗口,说“你好”。然而,如果我把光标移到别处,它应该会关闭那个信息窗口。这可以使用以下代码实现: google.maps.event.addListener(marker, 'mouseover', function() { infowindow.setContent("Hello"); infowindow.open(map, marker); }); google.maps.event.addListener(marker, 'mous

当我将鼠标悬停在鼠标上方时,会打开一个信息窗口,说“你好”。然而,如果我把光标移到别处,它应该会关闭那个信息窗口。这可以使用以下代码实现:

google.maps.event.addListener(marker, 'mouseover', function() {
   infowindow.setContent("Hello");
   infowindow.open(map, marker);
});

google.maps.event.addListener(marker, 'mouseout', function() {        
   infowindow.close();
});
但是如果我点击这个标记,它会打开一个包含不同内容的信息窗口。这可以使用以下代码实现:

google.maps.event.addListener(marker, 'click',function() {        
   infowindow.setContent(mycontent(name,msg));
   infowindow.open(map, marker);          
});
问题:如果我单击标记,信息窗口将打开并显示我的内容,但一旦光标移动,信息窗口将因鼠标移出事件而关闭。我们如何防止这种情况发生,以便在单击时,InfoWindow保持打开状态,直到或除非有人单击InfoWindow上的十字(X)标记

单击标记时设置一个标志(我将其称为
clicked
)。在mouseover/mouseout侦听器中检查该标志,如果已设置,则不采取任何操作。单击“X”关闭信息窗口时,清除标志(将其设置为false)

代码片段:

var infowindow=new google.maps.infowindow();
var=false;
函数初始化(){
var map=new google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var marker=new google.maps.marker({
位置:map.getCenter(),
地图:地图
});
google.maps.event.addListener(标记'mouseover',函数(){
如果(!单击){
infowindow.setContent(“你好”);
信息窗口。打开(地图、标记);
}
});
google.maps.event.addListener(标记'mouseout',函数(){
如果(!单击){
infowindow.close();
}
});
google.maps.event.addListener(标记'click',函数(){
单击=真;
setContent(“mycontent(name,msg)”);
信息窗口。打开(地图、标记);
});
google.maps.event.addListener(infowindow,
'关闭单击',
函数(){
单击=假;
})
}
google.maps.event.addDomListener(窗口“加载”,初始化)
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}