Клуб API Карт

Ajax загрузка содержимого балуна

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

Здравствуйте!

Возникла проблема с пониманием, каким образом можно из коллекций меток сделать аякс загрузку содержимого балуна.

Вначале в массиве выводится список меток, потом создаю три коллекции со своими стилями и определенные метки добавляю в нужные коллекции.

Не понятно, как сделать одно событие на все коллекции. Получить в этом событии свойство linkAjax текущей нажатой метки, подгрузить контент по ссылке из этого свойства аяксом в открытый в данный момент балун.

Примеры с загрузкой содержимого балуна аяксом смотрел, но так и не получилось ничего сделать на их основе (примера подгрузки аяксом с применением коллекций не нашел). JS знаю плохо, в основном jQuery. Очень прошу помочь знающих людей :)

 

Вот ссылка на страницу с картой (код карты в html разметке) http://html5-coder.com/html/131/map.html

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

 

Не понятно, как сделать одно событие на все коллекции.

Можно использовать event propagation

Подпишитесь на событие на коллекции и получайте текущую метку, на которой произошло событие через поле target

 

myCollection.events.add('click', function (e) {

    // Метка, на которой был клик будет в поле target

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

});

Спасибо!

Получилось вот так:

myMap.geoObjects.events.add('click', function(e){
    var placemark = e.get('target');
    var link = placemark.properties.get('balloonLinkAjax');
    if(!link) return;                               
        jQuery.get(
            link,
            function(data) {
                placemark.properties.set('balloonContent', data);
            },
            'text'
        );
    });