Twitter bootstrap 3 如何在openlayers中使用带有链接的popover
我想显示带有标记的地图。当我点击一个标记时,我想显示一个弹出窗口。在弹出窗口中还应该有一个指向外部网站的链接Twitter bootstrap 3 如何在openlayers中使用带有链接的popover,twitter-bootstrap-3,openlayers,Twitter Bootstrap 3,Openlayers,我想显示带有标记的地图。当我点击一个标记时,我想显示一个弹出窗口。在弹出窗口中还应该有一个指向外部网站的链接 到目前为止,这一切都很好。 但是,当我点击第一个标记(->弹出窗口被显示)并直接点击第二个标记时,弹出窗口仅在第二个标记上短暂显示,然后消失 我认为这与popover的“动画”设置有关。但是当我设置“animation:false”时,我就不能再使用这些链接了(我可以点击它们,但它们不会打开请求的网站) 下面是我的代码: 弹出窗口 var place_0=新的ol.特征({ 几何:新的
到目前为止,这一切都很好。
但是,当我点击第一个标记(->弹出窗口被显示)并直接点击第二个标记时,弹出窗口仅在第二个标记上短暂显示,然后消失
我认为这与popover的“动画”设置有关。但是当我设置“animation:false”时,我就不能再使用这些链接了(我可以点击它们,但它们不会打开请求的网站) 下面是我的代码:
弹出窗口
var place_0=新的ol.特征({
几何:新的ol.geom.Point(LONLAT([1.1,50]),ol.proj,
名称:“地名1
”
});
变量位置_1=新的ol.特征({
几何:新的ol.geom.Point(LONLAT([1.2,50]),ol.proj,
名称:“地名2
”
});
var vectorSource=新的ol.source.Vector({
特征:[位置0,位置1]
});
var vectorLayer=新ol.layer.Vector({
来源:矢量源
});
var rasterLayer=新ol.layer.Tile({
来源:new ol.source.OSM()
});
var map=新ol.map({
图层:[光栅图层,矢量图层],
目标:document.getElementById('map'),
视图:新ol.view({
中心:Lonlat的其他项目([1.1,50]),
缩放:10
})
});
var元素=document.getElementById('popup');
var popup=新ol.Overlay({
元素:元素,
stopEvent:false
});
map.addOverlay(弹出窗口);
//单击时显示弹出窗口
映射打开('click',函数(evt){
$(元素).popover('destroy');
var feature=map.forEachFeatureAtPixel(evt.pixel,
功能(特征){
返回特性;
});
如果(功能){
var iname=feature.get('name');
变量坐标=feature.getGeometry().getCoordinates();
设置位置(坐标);
$(元素).popover({
"动画":对,,
“html”:是,
//“延迟”:1000,
“内容”:iname
});
$(元素).popover('show');
}否则{
$(元素).popover('destroy');
}
});
问题是单击
事件将叠加和映射一起工作。事件通过Openlayers通过地图上的每个元素。您可以使用Overlay
上的stopEvent
选项来防止这种情况
啊,好的,这管用!(当我还设置“动画:false”时)。谢谢@阿比德:我的浏览器(firefox+chromium)不能使用小提琴。
var popup = new ol.Overlay({
element: element,
stopEvent: true
});