2013-02-05 53 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事件突然停止對我的工作,這是非常有益的。謝謝 –