在鼠标悬停上动态创建的谷歌地图只有第一次才能正确显示
Google maps created dynamically on mouseover show correctly only the first time
我用PHP文件中的坐标创建了一个谷歌地图多段线。鼠标悬停时,它会显示一个包含地图的div。第一次用光标输入时,地图显示正确,但第二次没有绘制多段线+地图在div中较小。代码:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script type="text/javascript">
$(document).ready(function(event) {
$(".testhover").on('mouseover', function(e) {
$.ajax({
type: "POST",
url: 'Paten/ajaxtest',
dataType: 'json',
data: {routeid: this.value},
success: function(response) {
var mapOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
// coordinates
var coordinates = [];
for (i = 0; i < response.length; i++) {
var point = new google.maps.LatLng(response[i].lat, response[i].lon);
coordinates.push(point);
}
var Route = new google.maps.Polyline({
path: coordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 0.7,
strokeWeight: 4
});
var bounds = new google.maps.LatLngBounds(); // set bounds
for (var i = 0; i < coordinates.length; i++) {
bounds.extend(coordinates[i]);
}
bounds.getCenter();
map.fitBounds(bounds);
Route.setMap(map);
$('#map-canvas').show();
$('#map-canvas').css({
top: (e.pageY) + "px",
left: (e.pageX) + "px"
});
}
})
})
$(".testhover").on('mouseout', function() {
$("#map-canvas").hide();
})
});
</script>
html
<style type="text/css">
#map-canvas{
display: none;
position: absolute;
width: 400px;
height: 400px;
padding: 10px;
background-color: grey;
}
</style>
<div >
<button id="447" value="447" class="testhover">Hover 1</button>
<button id="449" value="449" class="testhover">Hover 2</button>
</div>
<div id="map-canvas" ></div>
我在这里做错了什么?非常感谢。
问题已经解决。我不知道为什么,但我需要移动
$('#map-canvas').show();
$('#map-canvas').css({
top: (e.pageY) + "px",
left: (e.pageX) + "px"
});
在"成功"之后的最初阶段。
相关文章:
- 推特引导:弹出窗口不会在第一次点击时出现,但会在第二次点击时显示
- 为什么第一次点击时不显示此警报
- css'不显示'第一次不起作用
- 谷歌地图街景只显示第一次
- 第一次单击时未显示日期选取器
- 如何在第一次点击时突出显示链接;并在第二次单击时跟随它,除非在其他地方单击,然后重新初始化未高亮显示的状态
- jQuery:单击Ajax返回数据,但在第一次调用时显示在警报中
- 引导选项卡显示事件仅在第一次触发,而不会在第二个或以后的选项卡开关上触发
- 为什么日期选择器在自动打开第二个日期选择器上第一次更改月份时显示同月
- 奇怪的是,在第二次单击切换隐藏/显示按钮而不是第一次单击后,有两行有效
- 日期选取器在第一次组件单击时未显示
- 第一次访问网站时,Javascript没有突出显示菜单
- 隐藏后第一次单击时显示引导弹出窗口的问题
- AngularJS uib日期选择器没有'在uib选项卡中,不要在第一次打开/关闭事件之后显示日历
- 当用户第一次关闭特定页面时显示警告消息
- msDropDown子项在第一次单击时仅显示3px
- AngularJS-第一次运行.service计划发送数据,但没有显示,第二次运行,没有发送数据的计划,但显示了一些
- Angular列表只在第一次显示类别
- 仅第一次显示jQmodal窗口
- 服务器设置的cookie;t第一次显示在javascript中