Не работает событие прослушивания кликов в Google Maps API v3 - PullRequest
2 голосов
/ 27 апреля 2011

Последние несколько недель мы работали над приложением Google Maps API v3, когда заметили, что перестало работать событие нажатия на маркер одного типа. Мы изменили размер и увеличили количество этих маркеров, предположив, что наш код был плохим, но восстановление не решило проблему.

Наш код был довольно прост. После создания маркера (в данном примере называемого obj) мы сделаем следующее:

  google.maps.event.addListener(obj, 'click',
    function(coords){ localClick(coords, id); });

localClick является одной из наших функций, alert('click!'); также ничего не дало.

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

enter image description here

Это происходит во всех браузерах на OSX (мы не пробовали на Windows или Linux).

Одним из решений было указать версию API, которую вы используете для v3.2. Это не идеально, так как мы хотели бы оставаться в курсе. И до недавнего времени он работал над последней версией (v3.4).

Звоните в API карт Google вот так, и он не работает:

$.getScript("https://maps-api-ssl.google.com/maps/api/js?
  sensor=false&callback=mapLoaded");

Вот так и все замечательно:

$.getScript("https://maps-api-ssl.google.com/maps/api/js?
  sensor=false&v=3.2&callback=mapLoaded");

Мы озадачены.

К сожалению, мы не можем опубликовать код или рабочую демонстрацию (я знаю, что это уменьшает частоту ответов, требования клиентов).

1 Ответ

2 голосов
/ 27 апреля 2011

Если вы используете пользовательские наложения для маркеров, причиной может быть неправильное использование MapPane. некоторые панели могут не получать события dom, как указано в map api reference Это единственное, что приходит мне в голову.

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