Javascript 如何颠倒标记相互重叠的顺序?

Javascript 如何颠倒标记相互重叠的顺序?,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,我正在地图上画代表商店的标记 在关闭上一个单击的标记后,会为每个单击的标记显示一个全局信息窗口 在某些情况下,一些商店可能有相同的地址,因此标记显示在彼此的顶部,人们只能看到顶部标记 为了解决这个问题,我在infoWindow中添加了分页 问题是顶部标记是列表中的最后一个标记,因此信息窗口显示最新的店铺信息,分页显示“后退”按钮,而不是先显示第一家店铺和“下一步”按钮 我试着像这样反转“for”循环的顺序for(I=limit;I>0;I--),但它不起作用。该映射被卡住,好像运行了一些ajax

我正在地图上画代表商店的标记

在关闭上一个单击的标记后,会为每个单击的标记显示一个全局信息窗口

在某些情况下,一些商店可能有相同的地址,因此标记显示在彼此的顶部,人们只能看到顶部标记

为了解决这个问题,我在infoWindow中添加了分页

问题是顶部标记是列表中的最后一个标记,因此信息窗口显示最新的店铺信息,分页显示“后退”按钮,而不是先显示第一家店铺和“下一步”按钮

我试着像这样反转“for”循环的顺序
for(I=limit;I>0;I--)
,但它不起作用。该映射被卡住,好像运行了一些ajax请求

代码如下:

function drawShopsMarkers(){
    var marker;
    markersArray = [];
    var i;
    var limit = globalShopsArr.length;

    for (i=0; i<limit; i++){
        marker = new google.maps.Marker({
            position: new google.maps.LatLng(globalShopsArr[i].shopLat, globalShopsArr[i].shopLng), 
            map: map,
            title: globalShopsArr[i].shopTitle
        });

        markersArray.push(marker);
        marker.setMap(map);

        google.maps.event.addListener(markersArray[i], 'click', makeListener(i));
    }

    function makeListener(index) {
        return function() {
            globalInfowindow.disableAutoPan=true;
            globalInfowindow.open(map,markersArray[index]);

            CreateInfoWindowString(index);

            globalInfowindow.setOptions({
                content: globalContentString
            });
        }
    }       
}
函数drawShopsMarkers(){
var标记;
markersArray=[];
var i;
var limit=全局跳变长度;
对于(i=0;iTry

在注释中建议的。当你把函数附加到标记时,你需要改变这个行。当你把标记推到数组时,它会累积,但是你把函数附加到一个不存在的元素上。使用另一个变量,并在循环中增加它:C++ +/p> c++ 这一行是google.maps.event.addListener(markersArray[i]。。。


当您将循环更改为递减i并尝试markersArray[i]时,它必须给出一个错误,因为元素i还不在数组中。因此,创建一个c变量,并像我写的那样使用它,并将行更改为使用c而不是i。

for(i=limit;i>0;i--)
关闭1,您应该为(i=limit-1;i>=0;i--)编写
谢谢。很抱歉,我不明白。我写的代码是有效的,但它与我需要的正好相反。那么为什么当我反转循环时,有一个不存在的元素?你能举例说明你的意思吗? c++ google.maps.event.addListener(markersArray[i],.. ... ...