隐藏div上的Google Map API V3(jquery-ui标签)

时间:2011-12-01 10:11:05

标签: jquery jquery-ui google-maps google-maps-api-3 jquery-tabs

我知道这个问题很古老,但我似乎无法找到明确的指示。

问题的关键是Google地图在加载到隐藏(显示:无)div上时不会完全加载(部分显示),例如jQuery标签等

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

我听说延迟构建地图,并在点击标签时重新加载地图,但请帮我确切的代码。

2 个答案:

答案 0 :(得分:5)

为什么你说“left:-1000px'不是一个优雅的解决方案”?它在API v2中对我很有用,也应该适用于API v3(未经过测试,如果它不起作用,请告诉我)。

重绘,即API v2 checkResize()在API v3中以这种方式完成:

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

这是我的jquery-ui标签的CSS示例(灵感来自于 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;
}

答案 1 :(得分:1)

如果您不能依赖Tab Tab事件,可以在Tab Link点击事件上添加事件,而不是在页面就绪时调用initialize()

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