這是我的代碼塊,我push
RichMarkers
入陣:RichMarker:附加點擊事件偵聽器的標誌器陣列
// Populate markers array
for (let i = 0; i < FOUND_OBJECTS_TEST.length; i++) {
let richMarker = new RichMarker({
position: new google.maps.LatLng(FOUND_OBJECTS_TEST[i].latitude, FOUND_OBJECTS_TEST[i].longitude),
map: mainMap,
draggable: false,
flat: true,
anchor: RichMarkerPosition.MIDDLE,
content: `<figure class="marker_place" data-id="${FOUND_OBJECTS_TEST[i].id}"><img src="svg/map/ic_cat_${FOUND_OBJECTS_TEST[i].type}.svg"><figcaption class="marker_place_caption">${FOUND_OBJECTS_TEST[i].caption}</figcaption></figure>`,
});
markers.push(richMarker);
}
如何我還附上一個click
事件監聽每個標記,所以,當它會被點擊我會得到這個標記的值data-id
值?
編輯 我可以添加event listener
像這樣的標記:
// Populate markers array
for (let i = 0; i < FOUND_OBJECTS_TEST.length; i++) {
let richMarker = new RichMarker({
.....
});
google.maps.event.addListener(richMarker, 'click', function(event) {
let id = $(this).data('id'); // returns undefined
console.log(`clicked on marker ${id}`);
console.log(this);
});
markers.push(richMarker);
}
但我不能得到標記的data-id
...它記錄clicked on marker undefined
。
此問題已在重複問題中解決:[Google Maps JS API v3 - 簡單多標記示例](http://stackoverflow.com/questions/3059044/google-maps-js-api-v3-簡單多標記示例)與函數閉包。 – geocodezip