0

私は次のコードを持っており、ここで初期化関数を次のように呼び出したいと思います。google.maps.event.addDomListener(window、'load'、initialize);

しかし、私はこのエラーを受け取ります。エラー:初期化が定義されていません。

ここで何が問題になっていますか?

$(function CheckinMap() {
        $.ajax({
            type: "GET",
            url: "content/home/index.cs.asp?Process=ViewCheckinMap",
            success:     function initialize(data) {
                var center = new google.maps.LatLng(48.404840395764175, 2.6845264434814453);

                var map = new google.maps.Map(document.getElementById('map'), {
                  zoom: 2,
                  center: center,
                  mapTypeId: google.maps.MapTypeId.ROADMAP,
                  maxZoom: 4
                });

                var markers = [];
                for (var i = 0; i < data.users.length; i++) {
                  var location = data.users[i];
                  var latLng = new google.maps.LatLng(location.latitude,
                      location.longitude);
                  var marker = new google.maps.Marker({
                    position: latLng
                  });
                  markers.push(marker);
                }
                var markerCluster = new MarkerClusterer(map, markers);
            },
            error: function (data) {
                $("#checkinmap").append(data);
            }
        });
    });
google.maps.event.addDomListener(window, 'load', initialize);
4

2 に答える 2

1

jQueryメソッドと3番目の引数の両方に関数を使用する場合は、関数をに直接渡すのではなく、定義するときにどこかに格納する必要があります。successaddDomListenersuccess

それは、への呼び出しajaxとへの呼び出しの両方の範囲内にある必要がありますaddDomLister

function initialize(data)現在の行1の前に表示されるように移動します。

次に、と言いsuccess: initializeます。

于 2012-06-04T10:25:42.317 に答える
0

intializeスコープ内で定義CheckinMapし、コードの最後の行でそのスコープ外で使用しようとしています。本当に両方の場所に配置する必要がある場合は、外部で定義してから、successプロパティ値にある場合は参照してください。

function initialize(data) {
    var center = new google.maps.LatLng(48.404840395764175, 2.6845264434814453);

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 2,
      center: center,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      maxZoom: 4
    });

    var markers = [];
    for (var i = 0; i < data.users.length; i++) {
      var location = data.users[i];
      var latLng = new google.maps.LatLng(location.latitude,
          location.longitude);
      var marker = new google.maps.Marker({
        position: latLng
      });
      markers.push(marker);
    }
    var markerCluster = new MarkerClusterer(map, markers);
}

$(function CheckinMap() {
        $.ajax({
            type: "GET",
            url: "content/home/index.cs.asp?Process=ViewCheckinMap",
            success: initialize,
            error: function (data) {
                $("#checkinmap").append(data);
            }
        });
    });
google.maps.event.addDomListener(window, 'load', initialize);
于 2012-06-04T10:26:33.600 に答える