2012-03-16 56 views
1

我通過AJAX動態加載我的頁面。還有就是我傾倒動態加載HTML某個元素,這就是所謂的#containerGoogle地圖無法用GMap API v3成功重新初始化

<div id="container"> 
</div> 

所以,我加載網頁是這樣的:(我使用jQuery的方式)

$.post('./', { 'page': 'home' }, function(e){ 
    $('#container').html(e); 
},'html'); 

在一個我的網頁,我有一個使用GMap API v3嵌入/加載的Google地圖。基本上,我希望每次載入同一頁面時都能正常顯示這張地圖,所以我添加了一個函數來重新初始化GMap。但是,當我打開另一個頁面時,回到此頁面,地圖混亂了。我相信我必須在離開頁面後首先銷燬GMap的實例,這樣當我回到那個頁面時,它會變得新鮮。

現在,我的問題是我找不到一種方法來銷燬地圖。實際上有沒有辦法,或者採用不同的方法,或者是解決方法?

感謝您的幫助

編輯:

這是它看起來像在GMAP http://imageshack.us/photo/my-images/707/firstoc.jpg/

的第一負載這裏是它的外觀就像訪問不同的頁面(AJAX負荷)後回到前一頁:http://imageshack.us/photo/my-images/864/secondy.jpg/

灰色地帶是一個問題。它只是出現在那裏,你不能拖動它。我認爲GMap對象在重新加載頁面之前需要被銷燬,以便它不會搞砸,但我只是不知道如何。

+0

「$ .post(...)」中是否缺少撇號?你的意思是「弄虛作假」?截圖可能會有所幫助;一個鏈接會更好。 – 2012-03-16 17:08:18

+0

@AndrewLeach對不起,應該是'./',我現在編輯並添加屏幕截圖 – 2012-03-16 17:32:58

回答

0

我有類似的問題。你可能會發現我的解決方案有幫

我用的是 'pageinit':

$('.page-map').live('pageinit', function() { 
...do stuff. 
} 

當我需要的是 'pageshow':

https://stackoverflow.com/questions/9713930/why-do-my-markers-end-up-at-the-top-left-corner-if-i-navigate-back-via-ajax

+0

好的,謝謝,我會試試這個.. – 2012-03-17 03:54:16

+0

它沒有工作,順便說一下,它實際上並不是一個移動解決方案,只是桌面 – 2012-03-17 04:04:28

+0

他們看起來像類似的問題。我建議這是由於Ajax導航。你能提供更多的代碼嗎?即使使用http://jsfiddle.net/也會對您自己的故障排除有幫助。 – Gareth 2012-03-17 04:42:14

0

在這裏看看此示例代碼:jquery-ui-map-v_3

這不是唯一的解決方案,還有一個其他的w這可能會在之前的鏈接中工作。

<script type="text/javascript"> 
     $('#page_id').live("pageshow", function() { 
       $('#map_canvas').gmap({'center': '59.3426606750, 18.0736160278'}); 
     }); 
</script> 

我正在開發PhoneGap Framework和jQuery Mobile,並且正如gyaresu所說的,這爲我挽回了生命。

祝你好運。