Имам проблем с изтриването на маркер при щракване с мишката. Е, работата не е толкова проста, колкото изглежда.
function addPoint(event) {
path.insertAt(path.length, event.latLng);
var marker = new google.maps.Marker({
position: event.latLng,
map: map
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', function() {
marker.setMap(null);
markers.splice(i, 1);
}
);
Ако използвах този код, добавяйки слушател веднага при създаването на маркер, изтриването му би било лесно, защото се позовавам на marker.setMap(null);
. Но в моя случай искам те да бъдат създадени и след това искам да добавя слушателя на събития към тях, използвайки
function usun(){
for (var i=0; i<markersArray.length; i++){
google.maps.event.addListener(marker, 'click', function() {
alert('lol');
});
}
Натискам всеки маркер до markersArray
, което ми позволява да добавя събитие към всеки от него сега, но как мога да го изтрия? Когато поставя marker.setMap(null);
на мястото на предупреждението, той казва, че маркерът не е дефиниран и не знам как мога да се позова на маркера, който току-що щракнах :S също не мога да използвам маркера като глобална променлива, защото получавам грешка Uncaught TypeError: Cannot read property '__e3_' of undefined
.
РЕДАКТИРАНЕ: ако се опитам да използвам
function usun(){
for (var i=0; i<markersArray.length; i++){
google.maps.event.addListener(markersArray[i], 'click', function() {
markersArray[i].setMap(null);
});
}
} получавам грешката Uncaught TypeError: Cannot call method 'setMap' of undefined
. Ето защо бях сигурен, че трябва да използвам "маркер".