javascript - 传单:添加指向标记的链接

标签 javascript maps leaflet

非常简单的问题:如何使 Leaflet 中的 map 标记可点击并将用户引导至其他页面?每个标记都有自己的页面。

我尝试了以下但没有成功;所有标记都以某种方式指向同一个页面,这是最后分配的 URI。

var markers = [
    { coords: [51.505, -0.09], uri: '/some-page' },
    ...
];

for(x in markers)
{
    L.marker(markers[x].coords).on('click', function() {
        window.location = markers[x].uri;
    }).addTo(map);
}

这个问题真的让我抓狂。

最佳答案

好吧,我终于找到了解决办法;当一个标记被添加到 map 时,它会被分配一个名为“_leaflet_id”的 ID。这可以通过目标对象获取,也可以在将其添加到 map 后设置为自定义值。

所以最终的解决方案很简单:

var x = markers.length;

while(x--)
{
    L.marker(markers[x].coords).on('click', function(e) {
        window.location = markers[e.target._leaflet_id].uri;
    }).addTo(map)._leaflet_id = x;
}

(我用一个反向的 while 循环替换了 for-in 循环)

关于javascript - 传单:添加指向标记的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953895/

相关文章:

android - 使用双指缩放创建交互式 metro map (Android)

r - 在不重新排序的情况下使传单层可点击或不可点击

javascript - 为什么 slider 不显示在 map 上?

javascript - JSON 到 CSV 文件使用 json2csv nodejs

objective-c - 离线使用 iOS 6 矢量 map 的渐进细节

javascript - 不使用 Jquery 查找最后一个 td

javascript - 在 Google map Api Javascript 中创建自己的标记

javascript - React-MUI 为 ClickAwayListener 添加异常

javascript - c3.js 中的增量散点图

javascript - 如何通过 AngularJS 模板输出 html?