如何通过弹出窗口防止功能点击?
How to prevent feature clicks through popup?
我需要在单击矢量图层的特征时打开一个弹出窗口。我用的是Vector Icon Example as starting point. My problem is that when a feature is covered by the popup, you can still click it (Fiddle-Demo:点击下面的点,你可以通过弹出窗口点击上面的点)。如何防止这种行为?
相关代码:
map.on('click', function(evt) {
var element = popup.getElement();
$(element).popover({
"placement": "top",
"html": true
});
var popover = $(element).data("bs.popover");
var feature = map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {
return feature;
});
if (feature) {
popup.setPosition(feature.getGeometry().getCoordinates());
popover.options.content = feature.get("name");
$(element).popover('show');
} else {
$(element).popover('destroy');
}
});
将 stopEvent: true
设置为您的 ol.Overlay
对象,例如:
var popup = new ol.Overlay({
element: element,
positioning: 'bottom-center',
stopEvent: true
});
查看你的updated Fiddle demo。
我需要在单击矢量图层的特征时打开一个弹出窗口。我用的是Vector Icon Example as starting point. My problem is that when a feature is covered by the popup, you can still click it (Fiddle-Demo:点击下面的点,你可以通过弹出窗口点击上面的点)。如何防止这种行为?
相关代码:
map.on('click', function(evt) {
var element = popup.getElement();
$(element).popover({
"placement": "top",
"html": true
});
var popover = $(element).data("bs.popover");
var feature = map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {
return feature;
});
if (feature) {
popup.setPosition(feature.getGeometry().getCoordinates());
popover.options.content = feature.get("name");
$(element).popover('show');
} else {
$(element).popover('destroy');
}
});
将 stopEvent: true
设置为您的 ol.Overlay
对象,例如:
var popup = new ol.Overlay({
element: element,
positioning: 'bottom-center',
stopEvent: true
});
查看你的updated Fiddle demo。