2014-01-13 33 views
1

我有一個網頁的<head>以下功能:調用谷歌地圖功能的網頁無法正常工作

<script type="text/javascript"> 

    $(document).ready(function(){ 
    function googmap(){ 

    var marker; 
    var circle; 
    var map; 
    var bounds = new google.maps.LatLngBounds(); 
    var latit = 5; 
    var longi = 6; 
    var search_range = 2; 

map = new google.maps.Map(document.getElementById('map'), { 
centre: new google.maps.LatLng(latit, longi), 
mapTypeId: google.maps.MapTypeId.ROADMAP, 
zoom: 6 
}); 

marker = new google.maps.Marker({ 
position: new google.maps.LatLng(latit, longi), 
map: map 
}); 

google.maps.event.addListener(marker, 'click', (function(marker, i) { 
return function() { 
infowindow.setContent(latit); 
infowindow.open(map, marker); 
} 
})(marker, i)); 

    } 
    }); 
    </script> 

我打電話使用此功能:在JavaScript控制檯

<body onLoad="googmap()"> 

然而,告訴我功能googmap()沒有定義。我確定這個問題是關於範圍等,或者定義的功能是錯誤的方式,但即時通訊非常新的JavaScript,所以我不能自己排除故障 - 任何幫助將感激地收到!

回答

1

您不需要在這裏調用「onLoad ='googmap()'」,因爲您已經在jquery document.ready中執行了該函數。

所有你需要做的就是改變腳本: (離開了規則「功能googmap(){」和匹配結束的「}」)

$(document).ready(function(){ 

var marker; 
var circle; 
var map; 
var bounds = new google.maps.LatLngBounds(); 
var latit = 5; 
var longi = 6; 
var search_range = 2; 

map = new google.maps.Map(document.getElementById('map'), { 
centre: new google.maps.LatLng(latit, longi), 
mapTypeId: google.maps.MapTypeId.ROADMAP, 
zoom: 6 
}); 

marker = new google.maps.Marker({ 
position: new google.maps.LatLng(latit, longi), 
map: map 
}); 

google.maps.event.addListener(marker, 'click', (function(marker, i) { 
return function() { 
infowindow.setContent(latit); 
infowindow.open(map, marker); 
} 
})(marker, i)); 
    }); 
    </script> 
+0

輝煌,謝謝!所以我正確地思考,因爲googmap()函數在'匿名'函數中,主網頁並不認爲它已被定義?此外,正在使用jquery document.ready調用你想要自動運行的函數的好方法? – Giovanni

+1

確實! document.ready在頁面加載時被觸發,所以這裏的所有代碼都會被觸發。如果你想在這裏調用多個函數,你可以調用函數名'googmap();在document.ready中,還有許多其他功能。然後你只需要在document.ready標籤之外聲明這些函數。 – Yosoyke

0

,當你說你是對的由於範圍,googmap沒有被定義。由於該功能是在一個匿名函數內創建的:

$(document).ready(function(){ 

它不存在它之外。添加googmap();到匿名函數的末尾。