У меня есть функция наведения мыши на несколько полигонов, но когда я наведите курсор мыши на полигон, который я добавил первым, прослушиватель событий всегда использует последний добавленный полигон.
Вот мой код:
EDITED послеJons предложения.Карты Google, кажется, зависают с этим кодом ...
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Polygon Simple</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
function initialize() {
var myLatLng = new google.maps.LatLng(64.75539,11.557617);
var myOptions = {
zoom: 5,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.TERRAIN,
disableDoubleClickZoom: true
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var counties = [
[ new google.maps.LatLng(65.5938045448117, 18.1841615957621), new google.maps.LatLng(65.60908024341229, 18.0771327994505), new google.maps.LatLng(65.648282356232, 17.797014589131), new google.maps.LatLng(65.6726402881329, 17.6650173420103), new google.maps.LatLng(66.05487225660011, 16.7827851638447), new google.maps.LatLng(66.0563835399301, 16.5826047275627), new google.maps.LatLng(66.30204247803511, 15.826110215697), new ... ],
[ new google.maps.LatLng(60.2679550905311, 13.9522771739341), new google.maps.LatLng(60.1898004284838, 13.9706839102235), new google.maps.LatLng(60.2696058042898, 13.8508890937951), new google.maps.LatLng(60.4187463068127, 13.6952984208179), new google.maps.LatLng(60.4226284842923, 13.5706921611819), new google.maps.LatLng(60.448328778914, 13.4996704338411), new ... ]
];
var polygons = new Array();
for (var i = 0; i < counties.length; i++)
{
polygons[i] = new google.maps.Polygon({
paths: counties[i],
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35,
isSelected: false
});
polygons[i].setMap(map);
google.maps.event.addListener(polygons[i],'click',function(event) {
toggleSelection(polygons[i]);
});
google.maps.event.addListener(polygons[i],'mouseover',function(event) {
polygons[i].setOptions({ fillOpacity: 0.45 });
});
google.maps.event.addListener(polygons[i],'mouseout',function(event) {
if (!polygons[i].isSelected)
{
polygons[i].setOptions({ fillOpacity: 0.35 });
}
});
}
}
function toggleSelection(polygon)
{
if (polygon.isSelected)
{
polygon.setOptions({ fillOpacity: 0.35 });
polygon.isSelected = false;
}
else
{
polygon.setOptions({ fillOpacity: 0.45 });
polygon.isSelected = true;
}
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>