谷歌地图的自定义信息窗口?

时间:2016-06-09 15:10:58

标签: javascript jquery html

我正在尝试为Google地图创建自定义信息窗口。

我有一个例外成功!基本上,主信息窗口仍然可见,我不知道如何删除它或隐藏它。

这是一个有效的FIDDLE

这就是我所关注的:custom info window

我有上面链接中提到的代码:

   // Reference to the DIV which receives the contents of the infowindow using jQuery
   var iwOuter = $('.gm-style-iw');

   /* The DIV we want to change is above the .gm-style-iw DIV.
    * So, we use jQuery and create a iwBackground variable,
    * and took advantage of the existing reference to .gm-style-iw for the previous DIV with .prev().
    */
   var iwBackground = iwOuter.prev();

   // Remove the background shadow DIV
   iwBackground.children(':nth-child(2)').css({'display' : 'none'});

   // Remove the white background DIV
   iwBackground.children(':nth-child(4)').css({'display' : 'none'});

但是,这似乎没有做任何事情,你可以在我的小提琴中看到。

有人可以就此问题提出建议吗?

任何帮助都将不胜感激。

提前致谢。

修改

我想我到了某个地方。

我已经创建了一个自定义函数,并将所有代码放入其中以删除背景。然后我在html =''之后立即拨打customFunction();东西。

但问题是它第一次点击不起作用,但它适用于第二次点击或第三次点击等...

我已更新FIDDLE here

有什么建议吗?

第二次编辑:

非常接近。

https://jsfiddle.net/8yL2vhoe/3/

如果您单击一个标记,然后单击第二个标记,您将看到我要查找的结果。 (没有主弹出的背景)。

我只是不明白为什么第一次点击不起作用!!

1 个答案:

答案 0 :(得分:1)

请参阅更新后的Fiddle here

只需将.person { position: relative; } var html = "...";移到标记的点击监听器之外。 标记的点击监听器可以更简单,如下所示:

var iw = new google.maps.InfoWindow({...})

此外,您的var activeInfoWindow; function infoWindow(marker, map, title, address, url) { var html = "..."; var iw = new google.maps.InfoWindow({ content: html, //maxWidth: 350 },customFunction()); google.maps.event.addListener(marker, 'click', function () { if (activeInfoWindow != null) activeInfoWindow.close(); iw.open(map, marker); activeInfoWindow = iw; customFunction(); }); } 功能应该应用为

createMarker()