Карта Google: добавьте прослушиватель кликов к каждому многоугольнику

Я работаю над веб-приложением. У меня есть карта Google, где я добавляю полигоны из массива. Я перебираю этот массив и добавляю полигоны на карту. Мне также нужно добавить прослушиватель событий к щелчку многоугольника и предупредить положение многоугольника

Это то, что яя делаю

map = new google.maps.Map(document.getElementById('map_canvas'),
    mapOptions);
//Loop on the polygonArray
for (var i = 0; i < polygonArray.length; i++) {
    //Add the polygon
    var p = new google.maps.Polygon({
        paths: polygonArray[i],
        strokeWeight: 0,
        fillColor: '#FF0000',
        fillOpacity: 0.6,
        indexID: i
    });
    p.setMap(map);

    //Add the click listener
    google.maps.event.addListener(p, 'click', function (event) {
        //alert the index of the polygon
        alert(p.indexID);
    });
}

проблема

Полигоны все рисуют правильно. Однако проблема в том, что когда я пытаюсь нажать на многоугольник, он всегда показывает последний индекс. Это похоже на то, как если бы он щелкнул только по последнему добавленному многоугольнику. Я думаю, что когда я добавляю нового слушателя, он перекрывает старый. Как я могу добавить слушателя для каждого добавленного многоугольника, чтобы предупредить правильный индекс?

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос