GoogleMap 循环绑定图标点击事件的坑

  • 项目需要用到GoogleMap,循环从数据库中取坐标,然后点击坐标,根据坐标的ID以Ajax请求的方式获取坐标对应的详细信息,很容易得到如下代码:
success:function(data){
			for(var i = 0;i < data.length;i++){
				//alert(data[i].ENT_ID +"-"+data[i].LATITUDE+"-"+data[i].LONGITUDE+"-"+data[i].ENT_TYPE);
				// 坐标
			    lat = data[i].LATITUDE;
			    lng = data[i].LONGITUDE;
			    var myLatLng = new google.maps.LatLng(lat, lng); 
				// 加载坐标
			    var marker = new google.maps.Marker({
			        position: myLatLng,
			        map: map,
			        ent_id: data[i].ENT_ID,
			        ent_type: data[i].ENT_TYPE
			    });
			    // 绑定坐标事件
			    google.maps.event.addListener(marker, 'click', function () {
			    	alert(marker.ent_id+","+marker.ent_type);
			    });
			}
		}
  • 嗯,噩梦开始了,点击地图上的坐标,发现所有的alert都显示的是最后一个marker的值,调了一上午,放弃,刚刚调通了,解决方法如下:
/**
 * 绑定坐标事件
 * marker 坐标对象
 */
function bindingClick(marker) {
    google.maps.event.addListener(marker, 'click', function (event) {
    	viewItem(marker);
    });
};
  • 对,没看错,把绑定坐标事件的方法单提出来就ok了
  • 原文地址:http://blog.csdn.net/yueritian/article/details/50180041


你可能感兴趣的:(click,for,googlemap)