Google maps 将openInfoWindowHtml放置到标记数组中

Google maps 将openInfoWindowHtml放置到标记数组中,google-maps,google-maps-markers,Google Maps,Google Maps Markers,我在标记数组中放置openInfoWindowHtml时遇到问题。如果for循环中没有addListener,map.addOverlay(markerary[i])就可以正常工作。我的代码有什么问题?谢谢 function addMarkers(){ var tempMarker; var blueIcon = new GIcon(G_DEFAULT_ICON); blueIcon.image = "http://www...com/.../.p

我在标记数组中放置openInfoWindowHtml时遇到问题。如果for循环中没有addListener,map.addOverlay(markerary[i])就可以正常工作。我的代码有什么问题?谢谢

function addMarkers(){
        var tempMarker;
        var blueIcon = new GIcon(G_DEFAULT_ICON);
        blueIcon.image = "http://www...com/.../.png";

        // Set up our GMarkerOptions object
        markerOptions = { icon:blueIcon };
        for(ctr=0;ctr<default_address.length;ctr++){
            tempLatLng = new GLatLng(default_address[ctr][0], default_address[ctr][1]);
            tempMarker = new GMarker(tempLatLng,markerOptions);
            GEvent.addListener(tempMarker, "click", function()
                {tempMarker.openInfoWindowHtml("HI")});
            markerArray.push(tempMarker);
        }
            displayMarkers();

    }
    function displayMarkers(){
        map.clearOverlays();
        var i;
        for (i = 0; i < markerArray.length; i++) {
            map.addOverlay(markerArray[i]);
        }
    }
函数addMarkers(){
变温标记;
var blueIcon=新GIcon(G_默认图标);
blueIcon.image=”http://www...com/.../.png";
//设置我们的GmarkeProptions对象
markerOptions={icon:blueIcon};

对于(ctr=0;ctr您有
marker.openInfoWindowHtml
,但是什么是
marker
,它没有在这个函数的任何地方定义。它应该是
markerary[i]吗?相反,openInfoWindowHtml
?我假设markerary是一个包含标记对象的全局变量

更新:对于所有标记在最后一个标记的位置(和内容)打开其信息窗口的问题,这应该可以工作

function addMarkers(){
    ...
            for(ctr=0;ctr<default_address.length;ctr++){
                tempLatLng = new GLatLng(default_address[ctr][0], default_address[ctr][1]);
                tempMarker = new GMarker(tempLatLng,markerOptions);

                // add an event listener for this marker
                bindInfoWindow(tempMarker, "HI");

                markerArray.push(tempMarker);
            }
}

// create a new global function for this
function bindInfoWindow(marker, html) {
     GEvent.addListener(tempMarker, "click", function() {
            marker.openInfoWindowHtml(html)
     });
} 
函数addMarkers(){
...

对于(ctr=0;ctrim如此愚蠢..但我遇到了一个新问题..当我单击标记时,信息窗口会从最后放置的标记中弹出,而不是在地图中的每个标记上..为什么会这样?我编辑了上面的代码..谢谢,因为你在循环中设置了事件侦听器。我将用一些代码更新我的答案,这些代码应该可以解决这个问题。谢谢你ch!我很高兴它工作得很好!再次感谢!