2013-02-13 72 views
0

下面是我的問題的一個更集中的問題。我有3個地圖,分爲3個選項卡。第一張地圖顯示,另外兩張沒有。我意識到我需要在調用Tab時重新調整地圖的大小。但我不確定在哪裏放置調整大小的代碼。現在我沒有得到任何結果:觸發標籤時調整谷歌地圖的尺寸​​

$('.nav-tabs a').click(function (e) { 
     e.preventDefault(); 
     $(this).tab('show'); 
     createMap(); 

}) 


function createMap() { 

    var mapOptions = { 
     center: new google.maps.LatLng(30.30, -97.70), 
     zoom: 12, 
     mapTypeControlOptions: { 
      mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style'] 
     } 
    }; 

    var map = new google.maps.Map(document.getElementById('map_canvas'), 
     mapOptions); 

    var map2 = new google.maps.Map(document.getElementById('map_canvas2'), 
    mapOptions); 

    var map3 = new google.maps.Map(document.getElementById('map_canvas3'), 
    mapOptions); 

    google.maps.event.addDomListener(window, 'resize', function() { 
    map2.setCenter(30.30, -97.70); 
    }); 
    google.maps.event.addDomListener(window, 'resize', function() { 
    map3.setCenter(30.30, -97.70); 
    }); 

} 

我被稱爲在標籤的點擊功能,但似乎並沒有工作?

+0

乍一看,它看起來應該起作用。請構建一個jsFiddle演示,以便我們可以看到它失敗。你的'document.ready'函數中有哪些代碼? – Sparky 2013-02-13 20:00:49

+0

我開始挖掘你的頁面,我放棄了。我正在考慮更多的東西來解決導致問題的代碼量。 – Sparky 2013-02-13 20:06:42

回答

0

請試試這個代碼

$('a.location-map').on('click', function (e) { 
      setTimeout(function(){ initialize(); 
      google.maps.event.trigger(map, 'resize');},1000); 
}); 
0

試試這個代碼,當頁面加載 加載地圖

$(function() { initializeMap();}); 

的標籤

創造單擊事件後
$('.nav-tabs a').on('click', function() { 
        setTimeout(function() { 
         initializeMap(); 
         google.maps.event.trigger(map, 'resize'); 
        }, 1000); 
       });