Показать сообщение отдельно
  #1 (permalink)  
Старый 26.04.2016, 10:14
Аспирант
Отправить личное сообщение для shurik_shink Посмотреть профиль Найти все сообщения от shurik_shink
 
Регистрация: 22.05.2015
Сообщений: 35

google maps api - перезатирается event "click" для маркеров
!В цикле создаются маркеры. В следующем цикле навешиваются события "click" на каждый маркер. Но в итоге для всех маркеров будет событие "click" заданное последнему маркеру - "marker: 3"

Подскажите кто знает - в чем проблема и как исправить?

<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function initialize() {
	var mapProp = {
		center:new google.maps.LatLng(50.456501,30.559033),
		mapTypeId:google.maps.MapTypeId.ROADMAP,
		zoom:12,
		scaleControl: true 
	};
 	var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
  
	//создаем маркеры
	var markers =[[50.468077,30.562216],[50.459307,30.536864],[50.442119,30.578020]];
	var LatLng; var marker = [];
	for (i=0; i<markers.length; i++){
		LatLng = {lat: markers[i][0], lng: markers[i][1]};
		marker[i] = new google.maps.Marker({
			position: LatLng,
			map: map
		});
	}
	
	//навешиваем событие "click" на каждый маркер
	for (i=0; i<marker.length; i++) marker[i].addListener("click",function(event){alert('marker: '+i)});
}
</script>
</head>
<body>
<div id="googleMap" style="width:500px;height:400px; position: absolute; left: 0; right:0; margin: auto;"></div>
</body>
<script type="text/javascript">initialize();</script>
</html>
Ответить с цитированием