Google Haritalar V3'te bir işaretçinin onclick olayı nasıl tetiklenir?


128

Haritanın dışından bir Google Haritalar üzerindeki bir işaretçinin onclick olayını nasıl tetiklerim ?

API'nin 3. sürümünü kullanıyorum . Sürüm 2 için birçok öğretici gördüm, ancak sürüm 3 için bunu bulamıyorum.

Haritanın tüm işaretleyicisini (google.maps.Marker) içeren global bir dizim ( işaretçiler olarak adlandırılmış ) var. Şimdi şöyle bir şey yapmak istiyorum:

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');

Yardımınız için teşekkürler ve daha fazla bilgiye ihtiyacınız olursa bana bildirin!

Yanıtlar:


331

Çözümü buldum! Firebug sayesinde;)

//"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');

tıklama tetikleniyor, ancak benim durumumda bilgi pencereleri haritaya göre ayarlanmıyor, biraz kesti.
Saboor Awan

3
@Saboor Awan Yorumlar bunu çözmenin en iyi yolu olmadığından, bununla ilgili belirli bir soru sormaya çalışın.
AlexV

Bu hala doğrudur. JQuery'nin de bir trigger()işlevi olduğunu unutmayın . Benim durumumda intellisense ortaya çıktı ve argümanları değiştirmeme neden oldu.
Pete

3
Bunu v3 için yapmak bana TypeError: a is undefined in main.js (line 16, col 894)bunun nedeni ne olabilir?
2014 saat

1
@invot Kodu görmeden gerçekten yardımcı olamıyorum, ancak hızlı bir arama yaparken aynı sorunu yaşayan birini buldum ... CSS'de "popupMapIn" genişliğini ve yüksekliğini yüzde (%) değil piksel (px) kullanarak ayarlamayı deneyin .
AlexV

9

Gelecekteki Google çalışanları için, bir poligon için tıklamayı tetikledikten sonra aşağıdakine benzer bir hata alırsanız

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

sonra aşağıdaki kodu deneyin

google.maps.event.trigger(polygon, "click", {});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.