2013-02-17 8 views
0

내 루프가 붙어 있습니다. markerLayer.markers()[i].showTooltip(); 어떻게 든 그것은 잘못된 마커를 보여줍니다. 잘못된 주장을 전달하고 있습니까? 내가 여기서 논리를 놓치고 있니?자바 스크립트 루프 오류

for (var i = 0; i < features.length; i++) { 
    var a = side.appendChild(document.createElement('a')); 
    a.onclick = (function (feature, i) { 
     return function() { 
      markerLayer.interaction.hideTooltips() 
      map.ease.location({ 
       lat: feature.geometry.coordinates[1], 
       lon: feature.geometry.coordinates[0] 
      }).zoom(zoomPlaces).optimal(null, null, function (feature) { 
       markerLayer.markers()[i].showTooltip(); 
      }) 
     } 
    }) 
    (features[i], i); 
} 
+0

'markerLayer.markers()'는 예상 한 순서대로 마커를 반환합니까? –

+0

아니요, 설명해 드리겠습니다. 정상 순서는 0입니다. 1 2 3 4 5 6 이제 2 6 3 4 5 0 1 마커 레이어() [i + 1] .showTooltip),'6 3 4 5 0 1을 반환한다. (마지막 함수는 작동하지 않는다.) 만약 내가 +2하게 만들면 3 4 5 0 1// -1로 만들면/2 3 3 4 5 0 (3, 4, 5는 맞음) -2로 만들면// 2 6 3 4 5 (2는 맞음) 어떤 생각이 들었습니까? – user1697335

+0

전체 코드는 http://www.boerenmetwater.nl에 있습니다. – user1697335

답변

0

MapBox 및 리플릿의 자바 스크립트 API를 최신 버전은 고유 _leaflet_id 포함 레이어 객체의 배열을 반환 map.markerLayer.getLayers()를 사용합니다. 해당 ID 번호를 사용하여 togglePopup 마커를 지정하십시오.