2013-02-05 6 views
10

Sto cercando di ottenere dati dall'array marker e richiamarlo sulla funzione onmarkerclick in modo da poter accedere a un URL dopo aver fatto clic su un marker, tutto ciò che provo sembra fallire . Desidero aggiungere un URL all'array dei marker e restituirlo nel simbolo onmarkerclick. Grazie per il vostro aiuto in avanzato:Jvector Map come aggiungere e ottenere link dall'indicatore

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

risposta

26

Tanto coincidenza, ho affrontato lo stesso problema di ieri solo .. :)

La soluzione che ho trovato è stato quello di creare un array di fuori, e accedervi con l'indice nel click-funzione di ..

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

Grazie, sei una leggenda assoluta. Ho passato ore e giorni a cercare di capirlo. !!!! –

1

proprio perché ho appena risolto questo tipo di problema un modo diverso, e mi sento molto intelligente per aver fatto così, mi post la mia risposta.

È possibile memorizzare dati arbitrari utilizzando jQuery.data o javascript dom DataSets. A meno che tu non abbia altro SVG sulla tua pagina con gli elementi <circle>, puoi scorrere tutti gli elementi <circle> e dare loro i dati da una matrice. Gli indici corrisponderanno, ma è possibile utilizzare l'indice dei dati come salvaguardia.

Abbastanza freddo. Anche se questo è molto vecchio, forse questa alternativa aiuterà qualcuno.

+1

L'evento onMarkerClick improvvisamente ha smesso di funzionare per me, questo è stato molto utile. Grazie –

Problemi correlati