2016-07-18 8 views
-1

У меня проблема с маркером google maps. Фактически на моей карте я добавил несколько маркеров с прослушивателем событий, чтобы вызвать событие при щелчке, но они все швы, чтобы вызвать ту же функцию.Google maps markers event listener Нажмите

for(var j = 0; j < lat_long.length; j ++) { 
markers[j] = new google.maps.Marker({ 
    position: latitudeAndLongitudeOne, 
    icon: self.icon, 
    scaledSize: new google.maps.Size(50, 50), 
    map: self.map, 
    title: lat_long[i].name 
}); 

google.maps.event.addListener(markers[j], 'click', function() { 
    alert(j); 
}); 

}

У меня есть сигнал (х), с х означает идентификатор последнего элемента, вставленного. независимо от того, на какой маркер я нажимаю.

Любая идея? Спасибо

ответ

3
var markers= []; 
for(var i = 0; i < lat_long.length; i ++) { 
    var marker = new google.maps.Marker({ 
     position: latitudeAndLongitudeOne, 
     icon: self.icon, 
     scaledSize: new google.maps.Size(50, 50), 
     map: self.map, 
     title: lat_long[i].name 
    }); 
    marker.addListener('click', function() { 
     alert(marker.title); 
    }); 
    markers.push(marker); 
} 

Я не уверен, но вы можете попробовать

1

Это потому, что вы не можете определить маркеры, как вы. Создайте глобальный массив и введите в этот массив экземпляры каждого созданного маркера.

Итак: Для всех маркеров, определить массив, чтобы сохранить ссылку каждых созданных маркеров:

var markers = []; //Global Marker Array 
function printMarker(lat, lng){ 
    var marker = new google.maps.Marker({ 
     position: {lat: lat, lng: lng}, 
     icon: icon, 
     map: map 
    }); 
    markers.push(marker); 
} 

Теперь вы просто должны добавить clickListener к текущей ссылке маркеров witin вас цикл.

+0

Простите, я просто написал часть всего кода, как вы можете видеть, я использую массив, декларация не в той части, которую я написал, The факт Есть ли у меня маркеры на карте. Наличие маркеров на карте не является проблемой! Проблема заключается в том, чтобы иметь возможность щелкнуть и запустить «правильный» код. – Jeelig

+0

Не знаю, сделал ли я себя ясным enougth, извините, мой бедный английский – Jeelig