2013-02-05 21 views
10

İşaretçi dizisinden veri almayı ve onmarkerclick işlevinde onu geri çağırmaya çalışıyorum, böylece bir işaret tıklandığında URL'ye gidebilirim, denediğim her şey başarısız görünüyor . İşaretçi dizisine bir URL eklemek ve bunu onmarkerclick'e döndürmek istiyorum. gelişmiş yardım için teşekkürler:Jvector Nasıl harita eklenir ve işaretçi bağlantısı olsun

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

cevap

26

Çok tesadüf, ben buldum çözümü dışında bir dizi yaratmaktı

:) .. dün aynı sorunla karşı karşıya ve dizine göre erişim onu tıklama işlevinde ..

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

Teşekkürler, mutlak bir efsanesiniz. Bunu anlamaya çalışırken saatlerce gün geçirdim. –

1

sadece ben sadece sorunun bu sıralamak için farklı bir yol çözüldü ve ben bu yüzden, ben benim cevap yayınlayacağız yaptıktan için çok zeki hissediyorum çünkü.

İsteğe bağlı verileri jQuery.data veya javascript dom dataSets kullanarak depolayabilirsiniz. Sayfanızda <circle> öğeleri bulunan başka bir SVG'niz yoksa, tüm <circle> öğelerini yineleyebilir ve bunlara bir diziden veri ekleyebilirsiniz. Dizinler eşleşecektir, ancak veri dizinini bir güvenlik önlemi olarak kullanabilirsiniz.

Çok havalı. Bu yol eski olsa da, belki bu alternatif birine yardımcı olacaktır.

+1

onMarkerClick etkinliği aniden çalışmayı durdurdu, bu çok yardımcı oldu. Teşekkürler –