映射第二次加载错误的偏移量

时间:2012-07-30 19:00:31

标签: jquery google-maps-api-3 dialog

我已经制作了一个测试页面,您可以查看确切的问题。

首次点击其显示的完美地图,但当您关闭弹出窗口时,请再次点击gmap然后弹出窗口,但gmap显示四分之一。

this is link of test page

1 个答案:

答案 0 :(得分:2)

每次用户点击Init()链接时,您都会致电gmap。此功能每次都会创建一个谷歌地图。

我看到两种可能的解决方案:

  1. 仅在用户首次打开对话框时创建地图。当用户关闭对话框时,jQuery实际上隐藏了对话框div。地图仍然保留在那里,因此在重新显示对话框时无需创建新地图。 (全局声明var map = null;并在每次用户点击map元素时创建新地图之前测试null是否等于gmap

  2. 在对话框关闭时清理地图div。

  3. 关闭对话框时的清理

    尝试使用此代码清除关闭对话框中的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()方法。