2013-02-05 5 views
10

Ich versuche Daten aus dem Marker-Array zu holen und auf die onmarkerclick-Funktion zurückzurufen, damit ich auf eine URL klicken kann, wenn ein Marker angeklickt wird . Ich möchte eine URL im Marker-Array hinzufügen und diese in den Onmarker-Klick zurückgeben. Danke für Ihre Hilfe in fortgeschrittenen:Jvector Map wie man einen Link von Marker hinzufügt und ruft

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

Antwort

26

So viel Zufall traf ich auf das gleiche Problem gestern nur .. :)

Die Lösung, die ich gefunden außerhalb eines Arrays erstellen sollte, und der Zugang durch den Index in der Klick-Funktion ..

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

Danke, du bist eine absolute Legende. Ich habe Stunden und Tage damit verbracht, es herauszufinden. !!!! –

1

nur weil ich gelöst gerade diese Art von Problem, eine andere Art und Weise, und ich fühle mich sehr klug für so getan zu haben, werde ich meine Antwort posten.

Sie können beliebige Daten mit jQuery.data oder javascript dom dataSets speichern. Sofern Sie nicht andere SVG auf Ihrer Seite mit <circle> Elementen haben, können Sie über alle <circle> Elemente iterieren und ihnen Daten aus einem Array geben. Die Indizes stimmen überein, aber Sie können den Datenindex als Sicherheitsmaßnahme verwenden.

Ziemlich cool. Auch wenn das alt ist, wird diese Alternative vielleicht jemandem helfen.

+1

onMarkerClick-Ereignis funktioniert plötzlich nicht mehr für mich, das war sehr hilfreich. Vielen Dank –