我想爲所有的標記我循環槽自定義函數。這個問題(我認爲)是我需要用一個遞增的數字或其他東西來創建變量名稱標記。我的代碼如下:點擊多個谷歌地圖標記的自定義功能
$(document).ready(function(){
initMap();
});
function testfunction(data){
console.log(data);
}
function initMap() {
var myLatLng = {lat: -33.869490, lng: 151.201056};
var locations = [
['Bondi Beach', 'test', -33.890542, 151.274856, 4],
['Coogee Beach', 'test2222', -33.923036, 151.259052, 5]
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: myLatLng
});
var marker, i;
for (i = 0; i < locations.length; i++) {
var marker[i] = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][2], locations[i][3]),
map: map,
data : locations[i][1],
title : locations[i][0],
});
console.log(marker[i].data); // <-- THIS WORKS
marker[i].addListener('click', function() {
console.log(marker[i].data); // <-- THIS DOES NOT WORK
testfunction(marker.data);
});
}
}
EDITED !!! - 改變testfunction(marker.data); TO testfunction(marker [i] .data);
這給出了一個錯誤:無法讀取未定義的屬性'數據'。
但是,當我嘗試控制檯沒有eventlistener記錄它,它確實工作!
我認爲你需要聲明標記如上的for循環就行的數組。 'var marker = array();' –
我試着將它換出來,但給了一個錯誤未識別的數組。 – Wesleyvans
也試過把它換成var marker = [];然後在var marker [i]之前刪除var,這使得它返回了一個未識別的數據(在測試函數中) – Wesleyvans