0

我正在做一个项目,我使用jquery-ui-map向地图添加多个标记。每个标记都有不同的信息窗口和不同的文本。但是当我通过迭代我的数组来添加它们时,所有信息窗口都会出现相同的文本。有人可以帮我解决这个问题吗?我一直在拉我的头发。

$('#AroundMePage #map_canvas').gmap({'center': '-37.816945,144.953573', 'zoom': 12});

for (var i = 0, len = workOderLocalArray.length; i < len; ++i) {
       var workOrder =workOderLocalArray[i];

         var address = workOrder.PropertyAddress;
         var coordinates = workOrder.PropertyCoordinates;

         $('#AroundMePage #map_canvas').gmap('addMarker', { 'position':coordinates }).click(function() {
            $('#AroundMePage #map_canvas').gmap('openInfoWindow', { 'content': coordinates }, this);
          });   
  }
4

1 回答 1

0

我终于想通了。看来我在关闭时遇到了问题。但是所有的答案/修复都显示了如何使用本机 javascript googl maps api 解决这个问题,这是非常冗长的解决方案/代码,而不是 JQuery-ui-map api。

以下是我的最终代码:

//Function Retuning the Info window click event function
   function makeInfoWindowEvent(address) {  
        return function() {  
                    $('#AroundMePage #map_canvas').gmap('openInfoWindow', { 'content': address }, this);
            };  
    } 

var workOderLocalArray = workOrdersObject.workOrderArr;


     for (var i = 0, len = workOderLocalArray.length; i < len; ++i) {
         var workOrder =workOderLocalArray[i];

         var address = workOrder.PropertyAddress;
         var coordinates = workOrder.PropertyCoordinates;

         $('#AroundMePage #map_canvas').gmap('addMarker', { 'position':coordinates }).click(makeInfoWindowEvent(address));   
     }

希望这对未来的某人充满希望。干杯;-)。

于 2013-05-10T11:33:38.413 回答