Клуб API Карт

Заголовок не указан

lnghost
26 апреля 2009, 04:10

Собственно такой вопрос. Есть код:

points[0] = $("YMapAddress").value;
names[0] = $("YMapName").value;
points[1] = "г. Архангельск, пр. Троицкий, д. 99";
names[1] = "Блаблабла";

...

for(var i = 0;i < points.length;i++)
            {
                var value = points[i];
                var name = names[i];
                var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
                YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
                    if (this.length()) {
                        var text = this.get(0).text.match(/(?:.*?), (?:.*?), (.*)/)[1];
                        var geoPoint = this.get(0).getGeoPoint();
                        map.setCenter(geoPoint, 14, YMaps.MapType.MAP);
                        var placemark = new YMaps.Placemark(geoPoint,{style:"default#whitePoint"});
                        placemark.setBalloonContent('<div style=”text-align:center”><strong>'+name+'</strong><br><div id=”YMapsID2″ style=”height:200px; width:300px;”></div><br>'+text+'</div>');
                        placemark.setIconContent(text);
                        map.addOverlay(placemark);
                       
                        new YMaps.Events.observe(placemark, placemark.Events.Click, function () {
                            this.openBalloon();
                        });
                    }
                });
            }


Ак вот трабл в том, что в балун я хочу передать соотвествующую ячейку из names, с ключем i.

Ясно понятно, что передается туда последняя ячейка, обработанная скриптом, а не соотвествующая ключу.

Что посоветуете?

2 комментария
Подписаться на комментарии к посту
Попробуйте обернуть тело цикла в замыкание: (function(){ код })()
Спасибо, разобрался. Обернул YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {} в функцию и передал в нее нужные параметры.