Клуб API Карт

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

new-gorlum
11 мая 2010, 22:42

Как я могу для контейнера использовать стандартные события - вплывающие?

Для событий мыши нужны.

Использовать обсервер, делегируя вызовы неясно как, т.к. для объекта YMaps.Map есть только MouseMove, но это только перемещение, а MouseEnter и MouseLeave - нет.

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

5 комментариев
Подписаться на комментарии к посту
Azat Razetdinov
11 мая 2010, 22:12
Попробуйте YMaps.jQuery(map.getContainer()).mouseenter(...);

да, получилось, спасибо

правда, YMaps.jQuery(map.getContainer()).mousemove(...); - на самой подложке карты не работает, а пашет только на контролах поверх карты.

Приходится логику менять - YMaps.Map - MouseMove + jQuery (enter + leave)

Где-то все эти тонкости подавления DOM-событий для контейнеров описаны? В документации приходится догадываться по наименованиям.. :-)

карта ловит и глушит все операции с мышкой, а если врубите хоткеи - еще и хоткеев.
Самый оптимальный вариант решения проблемы сейчас - вешаться обычными YMaps ивентами на требуемые события.

И вариант два, который использую сейчас - когда надо - закрывать карту прозрачиным дивом.
Тут два варианта - закрыть поверх карты, или закрыть карту прозрачным контролом 100х100%

Да вот, не на всё у всех объектов - есть эвенты.

Не совсем понятно, почему разработчики оставили только Move, а Enter и Leave - у самой карты отсутствует...

Накрывать прозрачным дивом - думал, но мне нужно исключать контролы карты из реакций мыши, т.е. на контролах нужно отключать реакцию, а тогда логика ещё усложняется.

Вроде понятно, как делать, буду реализовывать.

суть в том что глушит ивенты именно что карта.
контролы, оверлеи и другие фиговины - не глушат.
вам надо закрыть самый самый зад карты, те под конролами и маркерами, но над подложкой.
при делании, можно эмулировать drag-2-move и вообще забыть что Я.карты какие-то события кушают