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