0

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

1 回答 1

1

来自Jquery mobile docs:'positionTo' 参数必须是字符串('origin' 或 'window')或 JQuery 选择器。在这种情况下 $(event.target) 将起作用。

于 2013-04-02T15:39:04.113 回答