私は Bing Maps を使用して、マップに複数のピンを配置することを実装しています。ピンが押されるたびに、情報ボックスのポップアップが表示され、情報ボックス内に編集ボタンがあります。編集ボタンを押すと、ピンに関連付けられたタイトルが表示されます(テスト目的)。ただし、各ピンの for ループにハンドラーを追加するたびに、最後のハンドラーのみが使用されます...たとえば、[hello、foo、bar] というタイトルの 3 つのピンを追加すると、どのピンでもバーが表示されます。クリックしてください...これが私がやっていることです:
for ( var pos = 0; pos < locationsSize; pos++) {
var locationFromIndex = locations[pos];
var bingLocation = new Microsoft.Maps.Location(
locationFromIndex.latitude, locationFromIndex.longitude);
// Create/add the pin
var pin = new Microsoft.Maps.Pushpin(bingLocation, {
width : 25,
height : 39,
anchor : mAnchor
});
pins.push(pin);
// Create/add the pin info box
var pinInfobox = new Microsoft.Maps.Infobox(pin.getLocation(), {
title : locationFromIndex.type,
visible : false,
height : 75,
zIndex : i,
width : 150,
offset : mOffset,
})
pinInfobox.setOptions({
actions : [ {
label : "Edit",
eventHandler : function(mouseEvent) {
alert(pinInfobox.getTitle()); // Only the last eventHandler added is being used...
}
} ]
});
map.entities.push(pinInfobox);
}