2014-09-10 8 views
0

기본적으로 전단지 맵에는 여러 마커가 있습니다. 나는 jQuery를 사용하고있다.전단지 :지도의 모든 아이콘에 어떤 영향을 줍니까?

var marker = L.marker([51.5, -0.09]).addTo(map); 
var marker2 = L.marker([51.49, -0.09]).addTo(map); 

marker.on("click", function() 
{ 
    $.ajax({ 
     type: "GET", 
     url: "Home/transactionForm", 
     dataType: "html", 
     success: function(ajaxresult) 
     { 
      marker.setPopupContent(ajaxresult); 
     }, 
     error: function (ajaxresult) { 
      alert("Filling the popup failed!"); 
     } 
    }); 
}); 

marker2.on("click", function() 
{ 
    $.ajax({ 
     type: "GET", 
     url: "Home/transactionForm", 
     dataType: "html", 
     success: function(ajaxresult) 
     { 
      marker2.setPopupContent(ajaxresult); 
     }, 
     error: function (ajaxresult) { 
      alert("Filling the popup failed!"); 
     } 
    }); 
}); 

분명히, 이것은 이상적인 거리가 멀다 : 내가 AJAX와 마커의 팝업을 채우려면 지금이 순간,이 코드를 사용해야합니다. jQuery에서 이것은 간단합니다 :

$("#map").on("click", "#marker", function() { 
    $.ajax({ 
    type: "GET", 
    url: "Home/transactionForm", 
    dataType: "html", 
    success: function(ajaxresult) 
    { 
     $(this).setPopupContent(ajaxresult); 
    }, 
    error: function (ajaxresult) { 
     alert("Filling the popup failed!"); 
    } 
}); 

어떻게해야합니까? 내지도의 ID를 알고 있지만 전단지, 팝업 및 기타 요소에 ID 전단지가 할당 한 것을 파악할 수 없습니다.

답변

0

전단지는 각 마커/팝업에 다른 ID를 추가하지 않습니다. 각 요소에 적절한 클래스를 추가하기 만하면됩니다. 따라서 이러한 요소는 jQuery 선택기로 액세스 할 수 없습니다.

동일한 URL을 사용하여 아약스로 팝업 콘텐츠를 설정하려면 (여기에서와 같이) 모든 마커를 목록에 추가하고 반복하여 반복 한 다음 각 마커에 대한 이벤트 처리기를 설정하십시오. 그 목록. 다음과 같은 내용 :

var markersArray = []; 
markersArray.push(marker1); 
markersArray.push(marker2); 
for (var marker in markersArray) { 
marker.on("click", function() { 
    $.ajax({ 
     type: "GET", 
     url: "Home/transactionForm", 
     dataType: "html", 
     success: function(ajaxresult) 
     { 
      marker.setPopupContent(ajaxresult); 
     }, 
     error: function (ajaxresult) { 
      alert("Filling the popup failed!"); 
     } 
    }); 
}); 
} 
관련 문제