以下は私のコードです。addMarkers 関数をクリーンアップして変更したので、この例ではうまくいかないことはわかっていますが、私が何をしていたかを示すために短くしたかっただけです。
ポップアップの位置を設定する方法を理解するのに苦労しています。positionto: event.target は機能すると思いましたが、ターゲットに何も返されません。何か案は?マップ上のマーカーをクリックすると、ほとんどのアイテムがポップアップするようにポップアップします。
function addMarkers(json){
for (var i=0;i<json.records.record.length;i++){
// Make Point
point = new OpenLayers.Geometry.Point(lonLat.lon, lonLat.lat);
feature = new OpenLayers.Feature.Vector(point);
layer.addFeatures(feature);
}
map.addLayer(layer[0]);
}
}
var selectControl = new OpenLayers.Control.SelectFeature(
[vectorlayer1, vectorlayer2],
{
clickout: true, toggle: false,
multiple: false, hover: false
}
);
vectorlayer1.events.on({
"featureselected": popup,
"featureunselected": function(e) {
alert("unselected feature "+e.feature.id+" on vectorlayer 1");
}
});
function popup(event){
$("#popup").popup('open', {
positionTo: event.target
});
}