以下是我的代码。我清理并修改了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
});
}
答案 0 :(得分:1)
来自Jquery mobile docs: 'positionTo'参数必须是字符串('origin'或'window')或JQuery选择器。 在这种情况下,$(event.target)将起作用。