Клуб API Карт

создание нескольких обработчиков событий

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

Хочется чтобы метод добавления обработчиков событий обладал схожим поведением с другими методами АПИ.

Например, устанавливать опции карте можно как с помощью chaining calls

map.options.set("dblClickZoomCentering", true).set("dblClickFloatZoom", true);

так и хешом:

map.options.set({ dblClickZoomCentering: true, dblClickFloatZoom: true });

 

Но добавить обработчики событий хэшом у меня не получилось:

        map.events.add({
            click : function (e) {
                console.log('click');
            },
            dblclick : function (e) {
                console.log('dblclick');
            }
        }
10 комментариев

map.events.add('click',function1).add('dblclick',function2).add(['mouseup','mousedown'],function3)

я знаю что чайнинг работает

не работает хэш

Sergey Konstantinov
28 января 2016, 04:59

Непонятно, как тогда контексты задавать.

ES5 bind?

у вас же еще в utils какой-то bind есть

А как задавать приоритеты?

что есть приоритеты?

Можно подписываться на событие с приоритетом. Чем больше приоритет, тем раньше выполнится обработчик. Правда для этого нужно, чтобы события слушались на event.PriorityManager. У обычных менеджеров приоритеты не учитываются.

Ну если кому то нужен приоритет - можно использовать отдельные chaining-вызовы.

Но по факту, уверен что их будут использовать не часто,

но вот удобство написания простых обработчиков от этого может пострадать.

Вообщем я конечно не на чем не настаиваю, если вы считаете что задание обработчиков с помощью хэша не вписывается в концепцию, то давайте оставим так.

Кстати, в доке отсутствует тип данных у параметра priority.

Я так понял, что это Number, поправьте, пожалуйста

Поправим ) Пиши, пиши нам про баги в доке )

Марина! спасибо что вы все сейчас помогаете отвечать в клубе!!!

я бы один тут утонул. =)

а доку мы постепенно совместно допилим!