我需要创建一些标记弹出窗口,在地图上显示来自不同 ajax 请求的信息。为了进行第二次通话,我使用了从第一次通话中获得的用户 ID。第二次通话中的信息显示良好,但所有弹出窗口都显示相同的名称,第一次通话中的最后一项,为什么会发生这种情况,有人可以帮我吗?提前谢谢了!!!。
$.getJSON('url', function (data) { // first call
for (var i = 0; i < data.length; i++) {
var name= data[i].name;
var location= data[i].location;
var userID = data[i].userID;
var myIcon= data[i].icon;
var marker = new L.Marker(location, {title: name, icon: myIcon});// create the marker
$.getJSON('https://api.site.com/data/'+userID+'',(function(marker){ // second call using userID
return function(data2) {
var info1 = data2.response.tips.items[0].text;
var info2 = data2.response.tips.items[1].text;
marker.bindPopup("<div class='popup'>" + name +"</br>"+ info1 +"</br>"+ info2 + "</div>", {maxWidth: '600'}) // create the popup and add it to the marker
}
})(marker)
);
shops.addLayer(marker); // add marker to map layer
}