Клуб API Карт

Cобытий на отдельный placemark api Яндекс.карт 2.0

Пост в архиве.

Нужно каждому placemark добавлять событие click, и при этом событии вызывать ф-ю, передавая туда параметр properties._K.entityid, но почемуто всем меткам пердается параметр последней метки??

Вот код:

         var Placemarks = [];

          for (var i in Map.options.placemarks) {

            var Coords = Map.options.placemarks[i].coords;

            var Params = Map.options.placemarks[i].params;

            var Icon = Map.options.placemarks[i].icon;

            var Placemark = new ymaps.Placemark(Coords, Params, Icon);

            Placemark.events.add('click', function () {

              //console.log(Placemark.properties._K.entityid);

              GetDataComplex(Placemark.properties._K.entityid);

            });

            Placemarks.push(Placemark);

          }

          clusterer.add(Placemarks);

3 комментария

Что за _К? Надо пользоваться интерфейсом, а не обращаться к обфусцированным полям через педаль

На момент когда случается клик цикл уже завершится и i будет = Map.options.placemarks.length

Владимир Усольцев
27 января 2016, 23:11

 А как мне сделать, чтобы когда случается клик, параметр брался от той точки по которой я кликнул, а не последней? 

Коллекции в АПИ поддерживают делегирование событий. Можно повесить один обработчик на коллекцию myMap.geoObjects

 

myMap.geoObjects.events.add('click', function (e) {

   console.log(e.get('target').properties.get('entityid'));

});