【发布时间】:2014-10-12 23:55:10
【问题描述】:
我正在开展一个个人项目,该项目将在几页上显示 Google 地图。我只创建了一个示例演示页面,我被困在一些看起来很简单但我无法解决的问题上(前端开发人员不多)
我的地图有一个 Html 页面。在底部,我创建了一个“模板”,它将用作 infoWindow 内容的容器。
<div class="infowindow2">
<h3>Point Information</h3>
<h4>Id {id} </h4>
<h4>Update date: {update}</h4>
</div>
对于 infowindow2 类,我有以下 css 样式:
.infowindow2{
width:250px;
height:130px;
overflow:hidden;
}
在标记的点击事件上,我设置了infoWindow的内容:
function addMarkerClick(marker){
google.maps.event.addListener(marker, 'click', function () {
infoWindow.close();
//Retrieve html template
var window2 = $('.infowindow2')[0].outerHTML;
//Replace template holders with values
window2 = window2.replace("{id}", marker.id);
window2 = window2.replace("{update}", marker.update);
infoWindow.setContent(window2);
infoWindow.open(map, marker);
});
}
现在回到我的问题。除了一件事,一切都很好。窗口的 Html 模板显示在页面上。我试图通过css将显示设置为none来隐藏窗口,但是当我点击时,infoWindow是空的(正如预期的那样,html不在页面上)
我在这里遗漏了什么吗?我想在我的页面上定义 html 模板,但只将它用于 infoWindow 。我现在不想使用任何像 bootstrap 这样的 css 框架,因为这是一个非常基本的演示。
更新:JSFiddle 重现问题:http://jsfiddle.net/joaopgrassi/vtp4fq97/1/ 向下滚动页面以查看正在显示的 html 模板。
【问题讨论】:
-
你能用小提琴重新创建这个吗?
-
当然。用 jsfiddle 更新了问题。
标签: jquery html css google-maps