我在网页的<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>
我使用以下方法调用此函数:
<body onLoad="googmap()">
然而,在javascript控制台中,它告诉我函数googmap()
未定义。我确定这个问题与范围等有关或我定义函数的方式是错误的,但我对JavaScript很新,所以我不能自己解决它 - 任何帮助都会感激不尽!
答案 0 :(得分:1)
你不需要在这里调用“onLoad ='googmap()'”,因为你已经在jquery document.ready中执行了这个功能。
您需要在此处更改脚本: (省略规则'function 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>
答案 1 :(得分:0)
当你说由于范围而未定义googmap时,你是对的。由于该函数是在匿名函数内创建的:
$(document).ready(function(){
它不存在于它之外。添加googmap();到匿名函数的末尾。