Javascript 传单:如何影响地图上的所有标记?

Javascript 传单:如何影响地图上的所有标记?,javascript,jquery,leaflet,Javascript,Jquery,Leaflet,基本上,我的传单地图上有几个标记。我正在使用jQuery。目前,如果我想用AJAX填充标记弹出窗口,我必须使用以下代码: 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/tr

基本上,我的传单地图上有几个标记。我正在使用jQuery。目前,如果我想用AJAX填充标记弹出窗口,我必须使用以下代码:

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!");
        }
    });
});
显然,这远非理想。在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传单分配给它的标记、弹出窗口和其他元素的是什么

传单不会向每个标记/弹出窗口添加不同的ID。它只是将适当的类添加到每个元素中。因此,这些元素不能通过jQuery选择器访问

如果您想使用具有相同url的ajax设置弹出内容(正如您在这里所做的),为什么不将所有标记添加到一个列表中,遍历它,然后为该列表中的每个标记设置事件处理程序呢。大概是这样的:

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!");
        }
    });
});
}