Пользовательский курсор на многоугольник, который можно нажимать в Google Maps V3 - PullRequest
6 голосов
/ 11 мая 2011

Я создал интерактивный многоугольник и прикрепил его к карте.У меня есть «перекрестие» draggableCursor для карты.Было бы неплохо иметь такой же курсор и для многоугольника.Однако при наведении курсора на многоугольник курсор меняется на руку.

Единственный способ сохранить курсор одинаковым - установить clickable: false для многоугольника, но при этом все слушатели событий дляполигон не работает.

Я потратил половину, и мы пытались найти решение в Интернете, но не смогли.У кого-нибудь есть такой драгоценный камень знаний?

1 Ответ

2 голосов
/ 21 августа 2011

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

В псевдокоде:

onPolygonMouseover:
  setTimeout(0 ms)

onTimeout:
  Find all elements in the dom with cursor == pointer
  Set pointer to crosshair

jQuery может быть полезен для поиска всех элементов с указателем курсора ==. В качестве альтернативы вы можете просто перебрать весь DOM.

Почему тайм-аут?

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

Почему тайм-аут 0?

Тайм-аут 0 помещает код в стек выполнения JS. Это будет выполнено в следующий раз, когда произойдет «разрыв» в выполнении кода. Это должно быть после того, как весь код обработки события завершится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...