3
我在地圖頂部顯示了一個表格/ div。我想讓它在隱藏在form/div區域之外的時候隱藏,但是當點擊在form/div之內時隱藏。OpenLayers 3 - 地圖頂部的Div無法捕獲點擊
我無法檢測點擊是否在div內完成。相反,表單/ div內的所有點擊都會在地圖上進行檢測,就好像div不存在一樣。
<div id="map" class="map"><div id="popup">
//input data of form
</div> </div>
<script>
map.on('click', function(evt) {
console.log('Clicked #map');
//one method I tried from another stack overflow answer
(evt.target !== this) ? $("#popup").show() : $popup.hide();
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature) {
return feature;
});
if (feature) {
loadInfo(feature.get('id'));
$("#popup").show();
}
});
$("popup").on('click', function(e) {
e.stopPropagation();
console.log('Clicked #popup');
});
</script>
輸出
點擊了#map
點擊了#popup
正如你可以在代碼中看到我試着在彈出的檢測點擊幾個不同的方法但他們都沒有工作。他們都好像彈出窗口不在那裏。
我正在使用openlayers3,如果這很重要。
我很欣賞你把寫這個答案的時間,但它不沒有工作。無論我在彈出窗口還是外部點擊,彈出消失。 – Iordanis
如果你點擊'#map','#popup'應該消失..但是如果你點擊'#popup',它應該保持可見。是不是正確? –
正確。它仍然不起作用。我認爲這與作爲畫布的地圖有關。 – Iordanis