jVectoMap获取被点击区域的值

问题描述 投票:1回答:1

我有一个使用以下代码创建的jVectorMap

var vmap = $('#world-map').vectorMap({
    regionsSelectable: true,
    regionsSelectableOne: true,
    series: {
        regions: [{
            scale: ['#cccccc', '#0A6EB4'],
            values: datasource
        }]
    },
    onRegionClick: function (event, code) {
        // if the value of the clicked region is ==1 do something 
    },
    backgroundColor: '#fff',
    focusOn: {
        lat: -0.015, lng: 15,
        x: 0,
        y: 0,
        scale: 1.9
    }
});

其中datasource的定义如下:

 countriesBgColors1 = {"AF": 1,"AL": 0,"DZ": 1,"AO": 0, ... }

值均为1或0.使用AJAX检索数据

在函数onRegionClick中,我只想在单击区域的值为== 1时执行代码,我该怎么办?

似乎没有办法检索它,除非我遍历整个数据源

javascript jvectormap
1个回答
1
投票

我相信答案比你想象的更简单。无需在此处循环,因为您正在接收数据作为对象:

onRegionClick: function (event, code) {
    var countryData = countriesBgColors1[code];
    switch(countryData) {
      case 0:
        // do something
        break;
      case 1:
        // do something else
        break;
    }
},

当您将数据分配给地图系列区域时,上述代码将等同于:

onRegionClick: function (event, code) {
    var countryData = vmap.series.regions[0].values[code];
    switch(countryData) {
      case 0:
        // do something
        break;
      case 1:
        // do something else
        break;
    }
},

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.