2012-11-04 49 views
-1

這是代碼即時通訊從工作: http://jsfiddle.net/X9SkK/單擊顯示谷歌地圖在Javascript中 - 不工作

這是JavaScript:

function showmap() { 
    var map; 
     function initialize() { 
     var mapOptions = { 
      zoom: 8, 
      center: new google.maps.LatLng(-34.397, 150.644), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(document.getElementById('map_canvas'), 
      mapOptions); 
     } 
}​ 

我想擁有它,這樣,當我點擊地圖加載的按鈕,但由於某種原因它不起作用。我確定它很簡單,但我無法找到它。

+0

你是什麼意思「它不工作」?有大約一百萬種不同的方式可能無法正常工作,所以請具體說明。此外,你收到什麼錯誤消息? – jmort253

+0

對不起,我是新來的。我點擊jsfiddle上的按鈕,什麼也沒有發生,什麼時候它應該加載地圖 –

+0

'未捕獲的ReferenceError:showmap未定義# – jmort253

回答

2

實際創建地圖的代碼被封裝在名爲initialize的函數中,該函數未被調用。刪除,你會被罰款:

function showmap() { 
    var mapOptions = { 
     zoom: 8, 
     center: new google.maps.LatLng(-34.397, 150.644), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); 
}​ 

另外,一定爲您#map_canvas元素指定一個固定的高度(如400px),或在您的jsfiddle它將不可見。

+0

謝謝,該作品http://jsfiddle.net/X9SkK/36/ –

0

這裏是你可以做什麼:

<!-- Display Map --> 
function showmap() { 
    var map; 
     function initialize() { 
     var mapOptions = { 
      zoom: 8, 
      center: new google.maps.LatLng(-34.397, 150.644), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(document.getElementById('map_canvas'), 
      mapOptions); 
     } 
initialize(); 
} 

初始化();負責創建地圖的函數從未被調用過。你必須在你的showmap函數中調用它。

DEMO

+0

我會說刪除內部函數是更好的做法,因爲沒有用它。 –

+0

我同意你的意見,我只是指出問題的主人,爲什麼它不起作用。 – defau1t