我已经制作了一个测试页面,您可以查看确切的问题。
首次点击其显示的完美地图,但当您关闭弹出窗口时,请再次点击gmap
然后弹出窗口,但gmap
显示四分之一。
答案 0 :(得分:2)
每次用户点击Init()
链接时,您都会致电gmap
。此功能每次都会创建一个谷歌地图。
我看到两种可能的解决方案:
仅在用户首次打开对话框时创建地图。当用户关闭对话框时,jQuery实际上隐藏了对话框div。地图仍然保留在那里,因此在重新显示对话框时无需创建新地图。 (全局声明var map = null;
并在每次用户点击map
元素时创建新地图之前测试null
是否等于gmap
。
在对话框关闭时清理地图div。
关闭对话框时的清理
尝试使用此代码清除关闭对话框中的map
元素:
<script type="text/javascript">
$('document').ready(function () {
$("#popup_container").dialog({
autoshow: false,
modal: true,
border: 10,
width: 500,
height: 340,
close: function(event, ui) {
$('#map').html('');
}
});
$('#gmap').click(function () {
Init(); // initialize the map
$("#popup_container").dialog("open");
});
});
</script>
另请注意,您需要将参数作为单个对象传递给dialog()
方法。