2012-07-30 100 views

回答

2

則在每次用戶點擊gmap鏈接時調用Init()。這個函數每次都會創建一個谷歌地圖。

我看到了兩個可能的解決方案:

  1. 只有創建地圖的用戶第一次打開的對話框。當用戶關閉對話框時,jQuery實際上隱藏了對話框div。地圖仍然停留在那裏,因此當您重新顯示對話框時不需要創建新地圖。 (聲明全局var map = null;和測試,如果map每個用戶點擊gmap元素。

  2. 清除地圖div對話框關閉時的時間來創建一個新地圖之前等於null。在對話框關閉

清理

試試這個代碼清理在對話框關閉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()方法。

+0

我該如何清理對話框關閉事件的地圖 – rahularyansharma 2012-07-30 20:25:16

+0

將此選項添加到對話框初始值設定項中:close:function(event,ui){$('#map')。html(''); }在對話框關閉時清空地圖元素。不知道這是否會起作用。最好的選擇可能是隻創建一次地圖。當你第二次重新打開對話框時,它仍然會在那裏。因爲關閉對話框實際上只隱藏對話框div。 – 2012-07-30 20:30:58

+0

我現在正在嘗試類似的東西..讓我很快知道如果這個工作對我來說謝謝! – rahularyansharma 2012-07-30 20:33:56

相關問題