javascript - api google maps javascript v3 中的 InfoWindow

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

有这样的功能。没问题。

function setIconsOnMap(arrIcons, pathIcon){
  var arrLatLng=Array();
  var markers=Array();
  var infowindow=Array();
  for (var i=0; i<arrIcons.length; i++){
    arrLatLng[i]=new google.maps.LatLng(arrIcons[i]['geo lat'],
      arrIcons[i]['geo lon']);
  }
  for (i=0; i<arrLatLng.length; i++){
    markers[i]=new google.maps.Marker({
      position: arrLatLng[i],
      map: map
    });
    markers[i].setIcon(pathIcon);
    infowindow[i]=new google.maps.InfoWindow({
      content: 'uuuu'
    });
    google.maps.event.addListener(markers[i], 'mouseover', function(){      
      alert('sss');
    });
  }
}

http://clip2net.com/s/1FtrV

http://clip2net.com/s/1Ftrp

但如果我尝试显示 InfoWindow 而不是 alert(),则该函数不起作用。

function setIconsOnMap(arrIcons, pathIcon){
  var arrLatLng=Array();
  var markers=Array();
  var infowindow=Array();
  for (var i=0; i<arrIcons.length; i++){
    arrLatLng[i]=new google.maps.LatLng(arrIcons[i]['geo lat'],
      arrIcons[i]['geo lon']);
  }
  for (i=0; i<arrLatLng.length; i++){
    markers[i]=new google.maps.Marker({
      position: arrLatLng[i],
      map: map
    });
    markers[i].setIcon(pathIcon);
    infowindow[i]=new google.maps.InfoWindow({
      content: 'uuuu'
    });
    google.maps.event.addListener(markers[i], 'mouseover', function(){      
      infowindow[i].open(map, markers[i]);
    });
  }
}

请指点我错在哪里。

最佳答案

如果我没记错的话,当鼠标悬停事件被触发时,你的数组超出了范围,将 infowindow 设置为标记属性,你应该没问题(数组也应该全局声明以供进一步引用)

var arrLatLng=Array();
var markers=Array();
function setIconsOnMap(arrIcons, pathIcon){
  for (var i=0; i<arrIcons.length; i++){
    arrLatLng[i]=new google.maps.LatLng(arrIcons[i]['geo lat'],
      arrIcons[i]['geo lon']);
  }
  for (i=0; i<arrLatLng.length; i++){
    markers[i]=new google.maps.Marker({
      position: arrLatLng[i],
      map: map
    });
    markers[i].setIcon(pathIcon);
    markers[i].infoWindow=new google.maps.InfoWindow({
      content: 'uuuu'
    });
    google.maps.event.addListener(markers[i], 'mouseover', function(){      
      this.infoWindow.open(map, this);
    });
  }
}

关于javascript - api google maps javascript v3 中的 InfoWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9579127/

相关文章:

javascript - JQuery - 多个复选框操作

javascript - 将服务器控件的值传递给 ASPx 客户端事件

javascript - Google Maps API v3 绘图管理器 - map 未呈现

javascript - Google map V3 - 防止右键单击标记时出现上下文菜单

javascript - 按钮不会在 Internet Explorer 中更新

javascript - 使用 uploadify 上传图像后刷新图像

javascript - org.mozilla.javascript.EcmaError : ReferenceError: \"document\" is not defined

javascript - 谷歌地图每次都无法在 map 上放置一些标记

javascript - 自动完成表格未将城市放入表格中?

php - Google Map Javascript API v3 : How to auto/easily adjust zoom level based on address detailness? 反之亦然?