2013-02-05 43 views
10

我想从标记数组中获取数据并在onmarkerclick函数中调用它,以便在点击标记后我可以转到URL,我尝试的所有东西似乎都失败。我希望将一个URL添加到标记数组中并将其返回到onmarkerclick。感谢您对您先进帮助:Jvector地图如何添加并从标记中获取链接

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

回答

26

这么多的巧合,我昨天遇到同样的问题,只有.. :)

我找到的解决方案是外面创建一个数组,并通过索引访问它在点击功能..

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

谢谢,你是一个绝对的传奇人物。我花了几个小时和几天的时间来解决这个问题。 –

1

只是因为我只是解决了这类问题的不同方式,并且我感觉为我做的话,我会后我的回答很巧妙。

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

很酷。即使这已经很老了,也许这个选择会帮助某人。

+1

onMarkerClickClick事件突然停止对我的工作,这是非常有益的。谢谢 –

相关问题