猿问

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的颜色呢?


慕娘9325324
浏览 833回答 1
1回答

动漫人物

在listener里面加一个marker.setIcon()就好了
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答