Jvector映射如何添加和从标记获取链接

我试图从标记数组中获取数据并在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); } }); }); 

这么多巧合,我昨天只面临同样的问题.. 🙂

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

 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); } }); }); 

仅仅因为我只是以不同的方式解决了这类问题,并且我觉得这样做非常聪明,我会发布我的答案。

您可以使用jQuery.data或javascript dom dataSets存储任意数据。 除非您的页面上有元素的其他SVG,否则您可以迭代所有元素并从数组中提供数据。 索引将匹配,但您可以使用数据索引作为安全措施。

很酷。 即使这已经过时了,也许这种替代方案可以帮助某些人。