如何在“Popupopen”活动期间识别传单的标记?
-
12-12-2019 - |
题
当单击标记时,我需要执行一些代码,该代码找到与被单击的标记相对应的生成的代码,从后端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); });
.
猜猜这个图书馆非常挥发......而且我不确定为什么首先传输这样的信息,这是这种复杂的。<耸肩>
不隶属于 StackOverflow