0

我在下面的代码中的单击按钮上轻松更改折线的颜色,

 var points = [  
     new GLatLng(24.85229, 67.01703),  
     new GLatLng(24.914463, 67.0965958)];
 var polyline = new GPolyline(points, '#ff0000', 5, 0.7); 

 GEvent.addListener(polyline, "click", function() {polyline.setStrokeStyle({ color: "#0000FF" }); });
map.addOverlay(polyline); 

但是我想在单击时将其颜色更改回以前的颜色,这样如果其初始颜色为红色并且单击时它会变为蓝色,然后在其他单击时它会再次将其更改为红色...。那我该怎么办?

希望得到你的回复。。

4

1 回答 1

2

有很多解决方案。一种是创建交换函数:

 var activeColor = '#ff0000';
 var inactiveColor = '#0000FF';

 var points = [   
                                   new GLatLng(24.85229, 67.01703),   
                                   new GLatLng(24.914463, 67.0965958)]; 
                                   var polyline = new GPolyline(points, activeColor, 5, 0.7);  

GEvent.addListener(polyline, "click", function() {
           // swap activecolor with inactivecolor
           var color = inactiveColor;
           inactiveColor = activeColor;
           activeColor = color;

           // set activecolor
           polyline.setStrokeStyle({ color: activeColor }); 
       }); 
       map.addOverlay(polyline);  
于 2011-08-26T04:12:41.723 回答