วิธีเรียกใช้เหตุการณ์ onclick ของเครื่องหมายบน Google Maps V3 ได้อย่างไร


128

ฉันจะทริกเกอร์เหตุการณ์onclickของเครื่องหมายบน Google Maps จากภายนอกแผนที่ได้อย่างไร

ฉันใช้API เวอร์ชัน 3 ฉันเห็นบทช่วยสอนมากมายสำหรับรุ่น 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 โผล่ขึ้นมาทำให้ฉันต้องย้ายข้อโต้แย้ง
Pete

3
การทำสิ่งนี้กับ v3 ทำให้ฉันTypeError: a is undefined in main.js (line 16, col 894)มีเหตุผลอะไร
Inv Inv

1
@ invot ไม่สามารถช่วยได้โดยไม่เห็นรหัส แต่ฉันพบใครบางคนที่มีปัญหาเดียวกันขณะทำการค้นหาอย่างรวดเร็ว ... ลองตั้งค่าความกว้างและความสูง "popupMapIn" ใน CSS โดยใช้พิกเซล (px) และไม่ใช่เปอร์เซ็นต์ (%) .
AlexV

9

สำหรับผู้ใช้ Google ในอนาคตหากคุณได้รับข้อผิดพลาดคล้ายกันด้านล่างหลังจากที่คุณเรียกใช้คลิกรูปหลายเหลี่ยม

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

จากนั้นลองใช้รหัสด้านล่าง

google.maps.event.trigger(polygon, "click", {});
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.