4

我可以显示带有标记的谷歌地图没有问题,但是当使用 ajax 刷新部分时,我无法在部分中显示地图。我猜这是因为使用 ajax 时没有触发最后的初始化行:

function initialize() {
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

var marker = new google.maps.Marker({
  position: myLatlng,
  map: map,
  title: 'Hello World!'
});
}

google.maps.event.addDomListener(window, 'load', initialize);

那么我可以使用 ajax 成功处理程序之一来初始化地图吗?我试过这个没有运气,但语法可能是错误的,我不知道把它放在哪里:

$(document).ajaxSuccess(function() {
    google.maps.event.initialize;
});

有任何想法吗?

编辑:

我通过添加到链接#response在属性/index.html.erb 页面的 div 中加载部分 _property_details.html.erb,这是 show.js.erb 代码:remote => true

properties/show.js.erb

$("#response").html("<%= escape_javascript(render('property_details')) %>");

Google 代码全部位于页面底部的properties/index.html.erb脚本标记中。

4

1 回答 1

6

假设您的部分刷新是使用 jQuery 完成的,这应该可以正常工作。

google.maps.event.addDomListener(window, 'load', initialize);
$(document).ajaxStop(initialize);
于 2013-05-17T19:40:44.887 回答