Javascript 许多谷歌地图监听器同时存在

Javascript 许多谷歌地图监听器同时存在,javascript,google-maps,mouseevent,Javascript,Google Maps,Mouseevent,目前我有一张地图,上面有许多由多边形定义的区域,每个多边形都有一个不同的fillColor 然后,当我将鼠标悬停在每个多边形区域上时,会产生以下效果: google.maps.event.addListener(MapArea, "mouseover", function () { this.setOptions({ fillColor: 'rgb(0,255,255)' }); }); google.maps.event.addListener(MapArea, "mouseout"

目前我有一张地图,上面有许多由多边形定义的区域,每个多边形都有一个不同的
fillColor

然后,当我将鼠标悬停在每个多边形区域上时,会产生以下效果:

google.maps.event.addListener(MapArea, "mouseover", function () {
    this.setOptions({ fillColor: 'rgb(0,255,255)' }); 
});
google.maps.event.addListener(MapArea, "mouseout", function () {
    this.setOptions({ fillColor: 'rgb(255,0,0)' }); 
});
换句话说,当我将鼠标移到上方时,该区域变为青色,当我移除鼠标时,该区域变为红色。然而,由于我的区域都是不同的颜色,我想在鼠标移走后回到它们的颜色

不同的颜色通过以下方式实现:

for (var t=0; t< lAll_Areas.length; t++) {
    var n = //arbitrary number 0<n<255;
    var m = (255-cd).toString();
    var col = 'rgb(' + n + ',' + m + ',0)';
    lAll_Areas[t].setOptions({ fillColor: col });
}

如何将mouseout事件附加到每个多边形?

一个选项:将默认颜色和高亮显示颜色设置为多边形的属性

for (var t=0; t< lAll_Areas.length; t++) {
    var n = //arbitrary number 0<n<255;
    var m = (255-cd).toString();
    var col = 'rgb(' + n + ',' + m + ',0)';
    lAll_Areas[t].defaultColor = col;
    lAll_Areas[t].highlightColor = 'rgb(0,255,255)';
    lAll_Areas[t].setOptions({ fillColor: col });
}

让您的
mouseover
事件侦听器将当前颜色存储在您的
mouseout
侦听器可以引用的全局变量中

var color;

google.maps.event.addListener(MapArea, "mouseover", function () {
    color = this.fillColor;
    this.setOptions({ fillColor: 'rgb(0,255,255)' }); 
});
google.maps.event.addListener(MapArea, "mouseout", function () {
    this.setOptions({ fillColor: color }); 
});
google.maps.event.addListener(MapArea, "mouseover", function () {
    this.setOptions({ fillColor: this.highlightColor }); 
});
google.maps.event.addListener(MapArea, "mouseout", function () {
    this.setOptions({ fillColor: this.defaultColor }); 
});
var color;

google.maps.event.addListener(MapArea, "mouseover", function () {
    color = this.fillColor;
    this.setOptions({ fillColor: 'rgb(0,255,255)' }); 
});
google.maps.event.addListener(MapArea, "mouseout", function () {
    this.setOptions({ fillColor: color }); 
});