1

Stackoverflow の皆さん、こんにちは。

Google マップ マーカーの MarkerCluster 関数を実装しています。非常に単純に見える問題が発生していますが、追跡するのに苦労しています。

このスクリプトは、Django テンプレートを介して渡された json 文字列を取得します。表示は正常に機能しますが、すべてのマーカーのリンクは同じです (json リストの最後)。しかし、反復ごとに新しい href が作成されるというコードは、私には簡単に思えます。そうじゃない?

スクリプトを実行すると、すべてのリンクが json リストの最後の項目にリダイレクトされます。どうすれば修正できますか?

var data = {{ project_data|safe }};
var markers = [];
for (var i = 1; i < {{ len|safe }}; i++) {
    var dat = data[i];
    var latLng = new google.maps.LatLng(dat.lat, dat.lng);
    var marker = new google.maps.Marker({
        position: latLng,
        title: dat.name,
        });

    google.maps.event.addListener(marker, 'click', function() {
      window.location.href = "../projects/" + dat.link;  
    });

    markers.push(marker);
}

あなたの助けと提案をありがとう。

4

1 に答える 1

4

変数のスコープの問題だと思います。これを置き換えるだけです

google.maps.event.addListener(marker, 'click', function() {
  window.location.href = "../projects/" + dat.link;  
});

以下で

(function(dat) {
    google.maps.event.addListener(marker, 'click', function() {
        window.location.href = "../projects/" + dat.link;  
    });
})(dat);

問題が解決することを願っています。

于 2012-06-11T02:15:40.113 に答える