未捕获的类型错误:无法读取未定义的 Google Map 和 jquery 的属性‘x’
2015-12-12
8352
我寻找了许多关于此异常的答案,但是我找到的所有解决方案都无法解决我的问题。
我正在使用 jQuery 和谷歌地图。我的 html 页面包含一些元素,以及一个包含许多函数和 ajax 调用的 .js 文件。
在 HTML 中:我将脚本放在正文的末尾:
<!-- here my .js file-->
<script type="text/javascript" src="js/myFunctions.js"></script>
<!-- Google Map -->
<script src="https://maps.googleapis.com/maps/api/js?key=MyKey" async defer>
</script>
</body>
在 myFunctions.js 文件中:
我有一个 ajax 调用,它返回纬度和经度,我将其发送给创建地图的函数:
initMap(parseFloat($(this).find("latitude").text()),
parseFloat($(this).find("longitude").text()));
然后我调用 map 函数来创建地图:
var map;
initMap = function (lat, lan) {
console.log(lat);
map = new google.maps.Map(document.getElementById('locMapDiv'), {
center: {lat:lat , lng: lan},
zoom: 13
});
}
一切工作正常,但是当我在地图上拖动时,控制台中显示错误:未捕获的类型错误:无法读取未定义的属性“x”。我不知道为什么会出现这个错误,而拖动工作正常。
这个错误可能是什么原因造成的?因为一切似乎都工作正常,甚至拖动和缩放也工作正常。
2个回答
尝试反转所包含脚本的顺序:
<script src="https://maps.googleapis.com/maps/api/js?key=MyKey" async defer>
<script type="text/javascript" src="js/myFunctions.js"></script>
并尝试在
load
函数内调用 init 函数,以确保 DOM 已完全加载:
google.maps.event.addDomListener(window, "load", , function () {
initMap(parseFloat($(this).find("latitude").text()),
parseFloat($(this).find("longitude").text()));
);
希望这对您有所帮助。
Zakaria Acharki
2015-12-12
尝试使用对象类型 LatLng 设置中心。
对于您的情况,请使用以下代码:
var centerLatLng = new google.maps.LatLng(lat, lan);
ZSFS
2016-08-02