3
除此之外,我包括在我的网页的头两个脚本:jQuery的谷歌地图加载之前执行:从jQuery和谷歌地图“的地图是未定义”
<script src="js/map.js" type="text/javascript"></script>
<script src="js/site.js" type="text/javascript"></script>
map.js包含的代码初始化我地图还具有以下功能放置一个标记就可以了:
function placeMarker(marker){
clearLocations();
var latlng = new google.maps.LatLng(
parseFloat(marker.lat),
parseFloat(marker.lng)
);
var marker = createMarker(latlng);
map.setZoom(14);
var latLng = marker.getPosition();
map.setCenter(latLng);
}
当我打电话site.js里面placeMarker
$(document).ready()
,我得到的错误,“地图是未定义”。然而,当我称之为site.js另一个功能是单击按钮时执行,placeMarker
运行在其回调没有问题:
$.ajax({
url: 'ajax/json.php',
dataType: 'json',
data: 'search_string='+inpMapSearch+'&country='+Country,
success: function(data) {
console.log(data);
placeMarker(data);
}
});
这是否意味着内部$(document).ready()
的placeMarker
函数调用尝试前执行地图初始化?在地图初始化后我如何运行placeMarker
?
=== EDIT ===
根据要求在这里是初始化地图的代码:
google.maps.event.addDomListener(window, 'load', load);
function load() {
map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(18.735693,-70.162651),
zoom: 8,
mapTypeId: 'roadmap',
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}
});
}
地图初始化在哪里? –
在$(document).ready()之外的map.js中。它是该文件中唯一不在函数内的代码行。 – Keyslinger
有趣的问题。不过,我们需要一个测试用例来回答它。 –