google map marker 点击变化颜色且不影响infowindow

我的代码如下:

for(i = 0; i <  test.length; i++){
 marker = new google.maps.Marker({
       position: new google.maps.LatLng(test[i].lat,test[i].long),
       map: map,
       icon:iconURL
       });
      
google.maps.event.addListener(marker, 'click', (function(marker, i) {
      return function() {
      marker = new google.maps.Marker({
      position: new google.maps.LatLng(test[i].lat,test[i].long),
      map: map,
      icon:iconClicked
                     });
      infowindow.setContent(test[i].string);
      infowindow.open(map, marker);
    }
    })(marker, i));
    }
    

我这样写,可以实现点击marker根据不同的iconURL使marker变化不同的颜色,但是当我再次点击marker的时候就没有反应了,infowindow也出不来。请问要怎样fix这个问题呢?
我估计是因为marker被覆盖的缘故。但是要怎么才能让marker被覆盖后还能触发listener呢?或者,怎样才能在不覆盖marker的情况下改变marker的颜色呢?

阅读 3.6k
1 个回答

自己找到了解决方案。。。其实好简单。。。在listener里面加一个marker.setIcon()就好了。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题