Клуб API Карт

Приоритетность событий.

vadim.zhiltsov
8 ноября 2012, 00:00

Есть два события

 

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

            if(airFlag){

                 if(addFlag>0){

                   $("#renoq").show();

             }

           }

        },null, 1500);

 

 

  myPlacemark.events.add("click", function(e){

                         //много кода

                        }, null, 1600);

При клике на Placemark срабатывает два события, надо чтобы работало только второе. 

7 комментариев
Подписаться на комментарии к посту

  myPlacemark.events.add("click", function(e){

                       e.stopPropagation(); // ?

                         //много кода

                        }, null, 1600);

UPD: кажется, пальцем в яблочко. см. События в ymaps api 2.x

stopImmediatePropagation()

когда добавляете второе событие можно remove'ить первое

это всё не то. Данные ф-ции останавливают дальнейшую работу событий, а не устанавливают приоритетность события клика по метке над кликом по карте =\ Пытаюсь сейчас мутит что-то с event.Manager()

приоритетность регулирует только порядок выполнения обработчиков

причем здесь одно событие вместо 2-х?

поставлю событие клика на метку раньше клика на карту, в тело клика на метку добавляю var clickPlacemark = true. Тело события клика на карту кидаю в условие:

if(!clickPlacemark){ тело обработчика}

else clickPlacemark = false;

Быдлокодерство, но по идее должно работать. Хотя решил проблему свою по другому.