Jvector地图如何添加和获取标记的链接

10

我正在尝试从标记数组中获取数据,并在onmarkerclick函数中调用它,以便在单击标记后转到URL,但我尝试的所有方法似乎都失败了。我希望将一个URL添加到标记数组中,并将其返回到onmarkerclick中。提前感谢您的帮助:

 $(function(){
    $('#map1').vectorMap({
                  map: 'world_mill_en',
                  scale: ['#C8EEFF', '#0071A4'],
                  normalizeFunction: 'polynomial',
                  hoverOpacity: 0.7,
                  hoverColor: false,
                  markerStyle: {
                    initial: {
                          fill: '#F8E23B',
                          stroke: '#383f47'
                    }
                  },
                  backgroundColor: '#383f47',
                  markers: [{latLng: [48.921537, -66.829834], name: "something", weburl : "/blah/foo"

            },{latLng: [45.995944, -64.171143], name: "something else", weburl : "/blah/foo"

            },],
                  onMarkerClick: function(events, label, index, weburl) {
                    alert (1+weburl);                
                   }
            });
});
3个回答

29

太巧了,我昨天也遇到同样的问题..:)

我找到的解决方案是创建一个数组,并通过click函数中的索引访问它。

var markers = [
    {latLng: [48.921537, -66.829834], name: "something", weburl : "/blah/foo"},
    {latLng: [45.995944, -64.171143], name: "something else", weburl : "/blah/foo-else"}
];

$(function(){
    $('#map1').vectorMap({
                  ...
                  markers: markers,
                  onMarkerClick: function(event, index) {
                      // alter the weburl
                      alert(markers[index].weburl);
                  }
            });
});

2
谢谢,你是一个绝对的传奇。我花了数小时和数天来尝试弄清楚这个问题。!!! - D J

1
只是因为我用了不同的方法解决了这个问题,感觉非常聪明,所以我会发表我的答案。您可以使用jQuery.data或javascript dom dataSets存储任意数据。除非您在页面上有其他带有

1
onMarkerClick事件突然停止工作了,这对我非常有帮助。谢谢。 - Nischal Kumar BC

0

通过使用Rajat和Oldenborg的解决方案,我成功地在默认的jVectorMap设置中获取了标记名称。

onMarkerClick: function(event, index) {

        console.log(map.markers[index].config.name);
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接