2011-12-01 109 views
3

我知道這個問題很古老,但我似乎無法找到明確的指示。Google Map API V3隱藏div(jquery-ui標籤)

問題的關鍵在於Google Map在加載到隱藏的(display:none)div上時無法完全加載(部分顯示)。 jQuery選項卡等。

API V3不再接受checkResize(),'left:-1000px'不是一個優雅的解決方案。

我聽說延遲構建地圖,並單擊標籤時重新加載地圖,但請幫我準確的代碼。

回答

5

爲什麼你說「left:-1000px'不是一個優雅的解決方案」?它在API v2中對我非常有用,並且也適用於API v3(未經測試,請告訴我它是否無效)。

重繪,即,API V2 checkResize()來完成這樣的API第3版:

google.maps.event.trigger(map, 'resize'); 

這裏是我的CSS的jQuery UI的標籤的例子(由 http://jqueryui.com/demos/tabs/啓發):

.ui-tabs .ui-tabs-hide#my_tabs-1 { /* my_tabs-1 contains google map */ 
    display: block !important; 
    position: absolute !important; 
    left: -10000px !important; 
    top: -10000px !important; 
} 
+0

thanks tomas。 '-10000px'對我來說看起來有點冒失,但是我仍然會放棄它。謝謝!! – Rex

+0

@Rex,剛剛添加了一個零,現在它很優雅! :-) – TMS

+0

@托馬斯哈哈,是的,它的工作原理。但我仍然想知道如何延遲構建地圖,或者如何重新加載地圖:) – Rex

1

如果您不能依賴Tab顯示事件,則可以在Tab Link單擊事件中添加事件,而不必在頁面上調用initialize()

$('#TabLink').click(function() { 
    initialize(); 
});