2013-02-05 23 views
10

Tôi đang cố gắng lấy dữ liệu từ mảng đánh dấu và gọi nó trở lại chức năng onmarkerclick để tôi có thể truy cập URL sau khi nhấp được đánh dấu, mọi thứ tôi thử dường như không thành công . Tôi muốn thêm URL vào mảng đánh dấu và trả lại URL này vào dấu onmarkerclick. Nhờ sự giúp đỡ của bạn trong tiên tiến:Jvector Bản đồ cách thêm và lấy liên kết từ điểm đánh dấu

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

Trả lời

26

Vì vậy, nhiều trùng hợp ngẫu nhiên, tôi phải đối mặt với cùng một vấn đề ngày hôm qua chỉ .. :)

Các giải pháp tôi tìm thấy là để tạo ra một mảng bên ngoài, và truy cập nó bằng cách chỉ số trong chức năng nhấp chuột ..

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

Cảm ơn, bạn là một huyền thoại tuyệt đối. Tôi đã dành hàng giờ liền để cố gắng tìm ra nó. !!!! –

1

Chỉ vì tôi giải quyết loại vấn đề này theo một cách khác, và tôi cảm thấy rất thông minh vì đã làm như vậy, tôi sẽ đăng câu trả lời của mình.

Bạn có thể lưu trữ dữ liệu tùy ý bằng cách sử dụng dữ liệu jQuery.data hoặc javascript domSets. Trừ khi bạn có SVG khác trên trang của mình với các yếu tố <circle>, bạn có thể lặp qua tất cả các phần tử <circle> và cung cấp cho chúng dữ liệu từ một mảng. Các chỉ mục sẽ khớp nhau, nhưng bạn có thể sử dụng chỉ mục dữ liệu như một biện pháp bảo vệ.

Khá tuyệt. Mặc dù đây là cách cũ, có thể thay thế này sẽ giúp một ai đó.

+1

sự kiện onMarkerClick đột nhiên ngừng hoạt động đối với tôi, điều này rất hữu ích. Cảm ơn –

Các vấn đề liên quan