![](/img/trans.png)
[英]How do I add same event listener to many markers and then differentiate between the markers in the listeners in Google Maps API v3?
[英]Google Maps API add Listeners to an array of markers
我有一張地圖,顯示基於數據庫的標記,這些標記保存在數組中。 現在,我想向他們添加動畫。 快速研究為我提供了有關單個標記的信息,但沒有提示我如何對多個標記執行這些操作。
作為Java的新手,我不太確定如何執行此操作。
我有一個基於PHP的foreach
循環,在其中添加了標記。 (據我了解,數據庫請求僅適用於php)。
我嘗試插入
google.maps.event.addListener(flightMarkers[flightMarkers.length], 'click', flightMarkers[flightMarkers.length].setAnimation(google.maps.Animation.BOUNCE););
但隨后該地圖甚至不再顯示。
任何想法和提示將不勝感激! 提前致謝。
flightMarkers.length
包含flightMarkers.length
中的項目數。
所以當你有
flightMarkers = new Array();
flightMarkers[ 0 ] = "value";
flightMarkers[ 1 ] = "value";
flightMarkers[ 2 ] = "value";
flightMarkers.length
將包含數字3
,但該數組中的最后一個索引是2
。 在此示例中,當您輸入flightMarkers[flightMarkers.length]
時,它將是flightMarkers[3]
,這是未定義的。
如果要僅將偵聽器添加到最后一個標記,請使用flightMarkers[flightMarkers.length - 1]
。 如果要將偵聽器添加到每個標記,請使用for循環:
for( var i = 0; i < flightMarkers.length; i++ ) {
google.maps.event.addListener(flightMarkers[i], 'click',
flightMarkers[i].setAnimation(google.maps.Animation.BOUNCE););
}
感謝@ Dr.Molle和@Lukas Kovac,這是有效的:
for (var i = 0; i < flightMarkers.length; i++) {
google.maps.event.addListener(flightMarkers[i], 'click',
function () {
this.setAnimation(google.maps.Animation.BOUNCE);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.