1

当用户将鼠标悬停在地址上时,我试图在标记上调用鼠标悬停事件,但这似乎不起作用。打开这个页面

http://tinyurl.com/bp94qdy

输入地铁,然后点击去。这是地址中的链接

 <a  onmouseover="javascript:google.maps.event.trigger(markersArray['+i+'],onmouseover);"

我还试图在初始化时缩放地图,以便所有标记都适合它,但这给了我一个未定义的 GLatLngBounds 错误。使用的代码是 function calculateCenter() {

  /* var latlngbounds = new GLatLngBounds();
  for (var i = 0; i < latlng.length; i++)
   {
       latlngbounds.extend(latlng[i]);
    }
    map.setCenter(latlngbounds.getCenter(), map.getBoundsZoomLevel(latlngbounds));*/
    center = map.getCenter();
    }
4

1 回答 1

3

查看google.maps.event.trigger的语法 这不起作用:

<a onmouseover="javascript:google.maps.event.trigger(markersArray['+i+'],onmouseover);" ...

因为事件名称应该是一个字符串,所以:

<a  onmouseover="javascript:google.maps.event.trigger(markersArray['+i+'],'onmouseover');" ...

甚至更好,使用 DHTML:

var div = document.createElement('DIV');
div.onmouseover = function(i){
google.maps.event.trigger(markersArray[i],'mouseover');
}
div.innerHTML = contentString;
var listContainer = document.getElementById("listingAddress");
listContainer.appendChild(div);

在事件名称两边加上引号。还有另一个错误: var markerBounds = new GLatLngBounds(); 是 API V2 语法。在 V3 API 中是

var markerBounds = new google.maps.LatLngBounds();
于 2012-09-01T08:33:44.333 回答