Клуб API Карт

DblClickZoom и события на клик

Пост в архиве.
Pr
3 июля 2011, 23:44

На карте завязано событие которое происходит при клике по карте и все работает хорошо, но когда хочется увеличить маштаб 2-ым кликом срабатывает даное событие.. как можно решить данную проблему? Искал в поиске ненашел ответа..

YMaps.Events.observe(map, map.Events.Click, function (map, mEvent)
5 комментариев

 

Какое решение вам нужно?

 

click при dblclick в любом случае будет приходить

можно, например, отключить зум по двойному клику

 

map.disableDblClickZoom();

 

Как альтернативу реально сделать событие на зажатие кнопки мыши?

какого эффекта вы хотите добиться?

чтобы при изменении масштаба dblclick-ом не срабатывал обработчик вашего клика?

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

единственный вариант, что мне приходит в голову - слушать dblclick и выставлять в нем флаг, который проверять в обработчике клика.

Это НЕ очень красивое решение, но больше ничего не придумывается

 

    boolDblClick = false;    YMaps.jQuery(function () {        var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);        map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);        YMaps.Events.observe(map, map.Events.Click, function () {            window.setTimeout(function () {                if (boolDblClick) {                    window.setTimeout(function () { boolDblClick = false; }, 300);                } else {                    console.log('click');                }            }, 300);        });        YMaps.Events.observe(map, map.Events.DblClick, function () {            boolDblClick = true;            console.log('dblclick');        });    });