下面是我的代码。我清理并修改了 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
});
}