当单击标记时,我需要执行一些代码,该代码找到与被单击的标记相对应的生成的代码,从后端API检索数据,然后将新检索的数据添加到将打开的弹出窗口的id

能够在标记上侦听单击事件的唯一方法是

map.on('popupopen', function(e){
    // How to retrieve marker?
    // eg: Assign an id on creation, retrieve it now during popupopen
};)
.

如何了解这是哪个标记?是否可以向每个标记添加一个生成的content属性,然后在id事件期间检索此生成频率agcode?

有帮助吗?

解决方案

事件对象包含一个名为“_source”的私有属性的“弹出”属性,该属性是弹出窗口绑定到的对象(即标记)。由于_Source应该是私人,这似乎并不是正确的方式,但我不确定否则怎么做。

map.on('popupopen', function(e) {
  var marker = e.popup._source;
});
.

其他提示

javascript对象可以在它们上定义任何属性。将弹出窗口设置为在创建弹出窗口时向引用的标记设置。然后,您可以在事件处理程序稍后访问它。

要获取标记ID,您可以使用此代码:

map.on('popupopen', function(e) {
  var marker = e.popup._source.feature.properties.markerid;
});
.

其他答案没有工作,但这确实如下:

map.on('popupopen', function(e) { alert(e.popup._source._popup._content); });
.

猜猜这个图书馆非常挥发......而且我不确定为什么首先传输这样的信息,这是这种复杂的。<耸肩>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top