Jquery 为AJAX重写Google地图
我希望用户按下一个按钮,AJAX加载将加载Google地图。我有几个问题。首先,我应该将脚本API键放在哪里。在原始文件还是AJAX文件中?其次,我不确定要写什么来加载GoogleMaps事件初始值设定项。这是代码 第一档Jquery 为AJAX重写Google地图,jquery,google-maps,google-maps-api-3,Jquery,Google Maps,Google Maps Api 3,我希望用户按下一个按钮,AJAX加载将加载Google地图。我有几个问题。首先,我应该将脚本API键放在哪里。在原始文件还是AJAX文件中?其次,我不确定要写什么来加载GoogleMaps事件初始值设定项。这是代码 第一档 <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=mykey&sensor=false&libraries=drawing"> </s
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?key=mykey&sensor=false&libraries=drawing">
</script>
<div id="themapsection">
<input type="button" id="tour_dates" Value="Show Tour Dates" />
<script type="text/javascript" >
$(document).ready(function() {
$('#tour_dates').click(function () {
var theid = <?php echo $user_id; ?>;
$('#map_canvas').load(
'ajax_map_tour_data.php',
{session_user_id: theid},
function() { google.maps.event.addDomListener(window, 'load', initialize)})
;});});
</script>
</div>
<div id="map_canvas"></div>
尝试在ajax加载(成功)事件中调用initialize函数
$(文档).ready(函数(){
$(“#巡演日期”)。单击(函数(){
var theid=;
$(“#映射_画布”)。加载(
“ajax\u map\u tour\u data.php”,
{session_user_id:theid},
初始化
);
});
});
您能更具体一点吗?抱歉,这是我第一次使用包含javascript的ajax文件,更不用说google maps api了。我重写了我认为是答案的内容,但在#map_canvas
中仍然没有呈现任何内容。我认为(窗口'load',initialize)
阻止了AJAX调用的工作,对吗?当然,Google地图内容不是这样加载的?你需要使用像map=newgoogle.maps.map(canvas,…)这样的语句
和marker=newgoogle.maps.marker({map:map,…})
。ajax请求应该使用$.ajax(…)
,而不是.load()
,请求的脚本应该返回数据,通常是JSON编码的。ajax成功处理程序应该解释数据,并执行google.maps…
语句来指定映射及其覆盖。有了这个目标,您就不需要ajax了。相反,将所有地图初始化语句包装在一个函数中,该函数在用户单击按钮时被调用。例如,$(document).ready(函数(){$('#tour_dates')。单击(函数(){var map=new google.maps.map($('#map_canvas')[0],options);//此处的其他google.maps语句})代码>
google.maps.event.addDomListener(window, 'load', initialize);
$(document).ready(function() {
$('#tour_dates').click(function () {
var theid = <?php echo $user_id; ?>;
$('#map_canvas').load(
'ajax_map_tour_data.php',
{session_user_id: theid},
initialize
);
});
});