マーカー付きの Google マップを問題なく表示できますが、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 成功ハンドラーの 1 つを使用してマップを初期化できますか? これを試してみましたが、運が悪かったのですが、おそらく構文が間違っていて、これをどこに置くべきかわかりません:
$(document).ajaxSuccess(function() {
google.maps.event.initialize;
});
何か案は?
編集:
#response
リンクに追加することで、properties/index.html.erb ページの div に部分的な _property_details.html.erb をロードしてremote => true
います。これが show.js.erb コードです。
properties/show.js.erb
$("#response").html("<%= escape_javascript(render('property_details')) %>");
properties/index.html.erb
Google コードはすべて、スクリプト タグ内のページの下部にあります。