在执行流程中,initialize()
函数需要出现在代码中,以允许通过JQuery .load()
调用加载Google Map v3 API地图。
我目前的代码看起来像这样
$('#maplink').click(function(){
$('.fades').fadeOut('slow');
$('#googleMap').show();
$('#googleMap').load("map.html");
initialize();
});`
但是,这不是在AJAX调用之后初始化地图。
任何帮助将不胜感激:)
答案 0 :(得分:2)
这是一个非常古老的问题,但是对于那些在此处结束的人来说,将.html页面加载到div
并不是动态加载Maps API地图的正确方法。这是应该如何做的:
首先,将所有Maps API脚本放在主页中 - 具有#googleMap
div的页面。或者,如果您希望脚本本身位于异步加载的文件中,请将其放在.js文件中并使用$.getScript()
加载它。
然后,如果您想要异步加载Maps API和地图以响应按钮点击,请使用this asynchronous Maps API example中的代码。
在该示例页面中,您将不会使用此行:
window.onload = loadScript;
相反,您将从点击处理程序中调用loadScript()
函数:
$('#maplink').click(function(){
$('.fades').fadeOut('slow');
$('#googleMap').show();
loadScript();
});
其中loadScript()
是示例中的Maps API加载函数。
事实上,您可以使用$.getScript()
加载Maps API - 只需为其提供loadScript()
示例函数中使用的网址即可。除了硬编码的URL之外,loadScript()
函数几乎等同于$.getScript()
。
当然,您还需要更改该示例中的initialize()
功能以匹配您的网页。
答案 1 :(得分:0)
我对jQuery不是很了解,但我不确定你为什么要让jQuery加载地图。如果您尝试异步加载地图,谷歌提供的方式https://developers.google.com/maps/documentation/javascript/tutorial#Loading_the_Maps_API除此之外。我帮不了多少。遗憾
答案 2 :(得分:0)
对google地图的initialize()调用可以作为脚本添加到map.html中,然后当jquery包含html时,它将执行javascript。
或者,您可以执行以下操作
$('#googleMap').load("map.html",function(){
alert('map is loaded and ready');
});
您遇到的问题是加载调用是异步的,因此,当调用initialize()时,您的ajax加载可能尚未完成。