当我使用Openlayers打开它时,如何让Jquery Mobile弹出窗口定位在标记上?

时间:2013-01-28 18:47:26

标签: jquery jquery-mobile openlayers

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

1 个答案:

答案 0 :(得分:1)

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