天天看點

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