Как вызвать событие onclick маркера на Google Maps V3?


128

Как запустить событие onclick для маркера на Google Maps извне?

Я использую версию 3 API. Я видел много руководств для версии 2, но не могу найти этого для версии 3.

У меня есть глобальный массив (именованные маркеры ), содержащий все маркеры карты (google.maps.Marker). Теперь я хочу сделать что-нибудь вроде:

markers[i].click(); //I know it's not working, but you get the idea...

//Next line seems to be the way in v2, but what's the equivalent in v3?
GEvent.trigger(markers[i], 'click');

Спасибо за вашу помощь, и если вам нужна дополнительная информация, дайте мне знать!

Ответы:


331

Я нашел решение! Спасибо Firebug;)

//"markers" is an array that I declared which contains all the marker of the map
//"i" is the index of the marker in the array that I want to trigger the OnClick event

//V2 version is:
GEvent.trigger(markers[i], 'click');

//V3 version is:
google.maps.event.trigger(markers[i], 'click');

щелчок срабатывает, но в моем случае информационные окна не подстраиваются под карту, они немного сокращаются.
Saboor Awan

3
@Saboor Awan Постарайтесь задать конкретный вопрос по этому поводу, поскольку комментарии - не лучший способ разобраться в этом.
AlexV

Это все еще правильно. Помните, что jQuery также имеет trigger()функцию. В моем случае выскакивал intellisense, заставляя меня переносить аргументы.
Пит

3
Выполнение этого для v3 дает мне В TypeError: a is undefined in main.js (line 16, col 894)чем причина этого?
invot

1
@invot Не могу помочь, не увидев кода, но я нашел человека с той же проблемой при быстром поиске ... Попробуйте установить ширину и высоту popupMapIn в CSS, используя пиксели (px), а не проценты (%) ,
AlexV

9

Для будущих гуглеров: если вы получите сообщение об ошибке, подобное приведенному ниже, после нажатия на многоугольник

"Uncaught TypeError: Cannot read property 'vertex' of undefined"

затем попробуйте код ниже

google.maps.event.trigger(polygon, "click", {});
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.