单击 Leaflet 中的标记时,如何防止显示弹出窗口?

How can I prevent a popup to show when clicking on a marker in Leaflet?(单击 Leaflet 中的标记时,如何防止显示弹出窗口?)
本文介绍了单击 Leaflet 中的标记时,如何防止显示弹出窗口?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想要一个在我单击传单标记时不显示的弹出窗口.我不能使用 clickable : false 因为它会使标记充当底层地图的一部分".这对我来说是不可接受的.我尝试了以下代码:

I want a popup that doesn't show itself when I click on the Leaflet marker. I cannot use clickable : false because it will make the markers "act as a part of the underlying map" and this is unacceptable for me. I tried the following code:

marker.on('click', function(event) {
  event.originalEvent.preventDefault();
});

没有任何结果.在不使用标记对象的 clickable : false 属性的情况下,防止弹出窗口显示的正确方法是什么?

without any results. What is the right way to prevent a popup from showing without using the clickable : false property of the marker object?

我只需要通过单击一个自定义按钮来打开地图上的所有弹出窗口,但我不希望在单击特定标记后弹出窗口显示自己.

All I need is to open all the popups on the map by clicking on one custom button, but I don't want the popups to show themselves after I click on a particular marker.

推荐答案

只是不要将弹出窗口绑定到标记.这是一个带有 2 个标记的 fiddle.一个有弹出窗口,另一个没有.

Just don't bind a popup to the marker. Here's a fiddle with 2 markers. One has a popup and the other does not.

L.marker([51, 0]).bindPopup("this is a popup").addTo(map);

L.marker([51, 1.5]).addTo(map);

我已经编辑了 fiddle 并认为这可能是您要问的.这是代码的重要部分:

I've edited the fiddle and think it might be what you are asking. Here's the important part of the code:

function onClick(event) {
    event.target.closePopup();
}

这篇关于单击 Leaflet 中的标记时,如何防止显示弹出窗口?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How do I can get a text of all the cells of the table using testcafe(如何使用 testcafe 获取表格中所有单元格的文本)
node_modules is not recognized as an internal or external command(node_modules 未被识别为内部或外部命令)
How can I create conditional test cases using Protractor?(如何使用 Protractor 创建条件测试用例?)
PhantomJS and clicking a form button(PhantomJS 并单击表单按钮)
Clicking #39;OK#39; on alert or confirm dialog through jquery/javascript?(在警报上单击“确定或通过 jquery/javascript 确认对话框?)
QunitJS-Tests don#39;t start: PhantomJS timed out, possibly due to a missing QUnit start() call(QunitJS-Tests 不启动:PhantomJS 超时,可能是由于缺少 QUnit start() 调用)