Javascript Google Maps маркер категории - PullRequest
0 голосов
/ 09 декабря 2011

Это внутри функции инициализации Google и работает нормально.Это код ниже, который проходит по маркерам, который получает marker[i] is undefined

$.each(places, function(index, value) {
    x++;
    var pos = new google.maps.LatLng(value[1], value[2]);
    var icon = value[3];

    if(value[3] == 'HI') icon = "NF";
    if(value[3] == '') icon = "WH";

    marker[x] = new google.maps.Marker({     
        position: pos,
        map:map,
        title: value[0],
        shadow: shadow,
        icon: "../img/markers/" + icon + ".png"
    });

    marker[x].locType = icon;
});

Вот цикл вне функции инициализации - получение marker[i] is undefined, выполнение alert(marker) дает мне [object Object],[object Object],[object Object],[object Object],[object Object] и т. Д...

$(".team").click(function() {
    var type = $(this).attr("id");
    $.each(marker, function(i, val) {
        if(marker[i].locType == type) marker[i].setVisible(false);
    })
});

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Я думаю, что проблема в

x++;

это, вероятно, означает, что ваш массив начинается с индекса 1 вместо 0

так что вы, вероятно, результат:

[1] = Object
[2] = Object
etc.

при запуске метода $.each он пытается

marker[0].locType

Решение состоит в том, чтобы переместить x++ в конец $.each(places, function(index, value) {

0 голосов
/ 09 декабря 2011

Вы установили массив?

var marker = Array();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...