4

マーカー付きの 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.erbGoogle コードはすべて、スクリプト タグ内のページの下部にあります。

4

1 に答える 1

6

部分的な更新がjQueryで行われたと仮定すると、これは機能するはずです。

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