【问题标题】:google maps api v3 - targeting markersgoogle maps api v3 - 定位标记
【发布时间】:2016-11-06 23:51:18
【问题描述】:

我这样设置我的标记

    var marker, i;
   var markers = [];

    for (i = 0; i < locations.length; i++) { 
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map,
         icon: 'img/markers/t1.png',
          id: locations[i][3]
      });

      markers.push(marker); 

      marker.addListener('mouseover', function() {

       marker.setIcon("img/serve-bracket.png"); 
        });



}
}

这似乎只是将事件处理程序附加到最后一个。如何将其添加到所有标记中

【问题讨论】:

  • @YagnikDetroja 在该链接中回答 OP 的问题是什么?
  • 下一次,请发布正确的代码,正确缩进,并遵循MCVE 准则。拥有超过 2500 名声望,您应该意识到这一点。

标签: javascript google-maps events google-maps-api-3


【解决方案1】:

您需要将您的 addListener 包装在一个闭包中。

var marker, i;
var markers = [];

for (i = 0; i < locations.length; i++) {
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map,
        icon: 'img/markers/t1.png',
        id: locations[i][3]
    });

    google.maps.event.addListener(marker, 'mouseover', (function(marker, i) {
        return function() {
            marker.setIcon("img/serve-bracket.png");
        }
    })(marker, i));

    markers.push(marker);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 2012-05-11
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多