0

我正在尝试使用 jQuery 函数(位于末尾)在此测试变量中附加mapvalues的值。我该怎么做呢?

我想将map: 'ecoMap'的值更改为map: developmentRegionMapvalues: Chhertivalues: testvalue

function Eco_regions() {
    test = $('#world-map').vectorMap({
        map: 'ecoMap',
        backgroundColor: '#FFFFFF',
        regionsSelectable: false,
        series: {
            regions: [{
                values: Chhetri,
                scale: ['#fffad6', '#d05300'],
                normalizeFunction: 'polynomial'
            }]
        }
    });
};

这是应该附加变量的jquery函数。

$('#change_ecoregions').click(function (e) {
    e.preventDefault();
    test.map.setValue('developmentRegionMap');
    test.series.regions[0].setValues(testvalue);
    Eco_regions();
});
4

5 回答 5

2

您需要的是特定于插件的;假设您使用的是jQuery Vector Maps 插件,根据文档,您必须这样做才能在创建后更改值(未经测试):

jQuery('#vmap').vectorMap('set', 'map', 'developmentRegionMap');
于 2013-07-03T13:45:49.737 回答
1

我想将 map: 'ecoMap' 的值更改为 map: developmentRegionMap 和 values: Chherti 到 values: testvalue

然后只需将它们设为该函数的参数:

function Eco_regions(map, value) {
    test = $('#world-map').vectorMap({
        map: map || 'ecoMap',
        backgroundColor: '#FFFFFF',
        regionsSelectable: false,
        series: {
            regions: [{
                values: value || Chhetri,
                scale: ['#fffad6', '#d05300'],
                normalizeFunction: 'polynomial'
            }]
        }
    });
};

$('#change_ecoregions').click(function (e) {
    e.preventDefault();
    Eco_regions('developmentRegionMap', testvalue);
});
于 2013-07-03T13:46:49.370 回答
1

我找不到一个很好的方法来更改变量并让它重新绘制地图。我认为您可能需要将旧地图吹走并添加一张新地图。

  1. 为地图定义一个元素

    var mapElement = '<div id="world_map" style="width:600px; height: 400px;">';
    
  2. 创建一个容器 div

    <div id="container"></div>
    
  3. 当更改事件被触发时,移除旧地图,将新元素附加到容器,并vectorMap使用新设置调用函数。

    $('#world_map').remove();
    $('#container').append(mapElement);
    $('#world_map').vectorMap(options);
    

这里以小提琴为例。

于 2013-07-03T21:31:43.287 回答
0

我认为最好稍微重新排列您的功能,以便您可以轻松调整属性:

var test= {
    map: 'ecoMap',
    backgroundColor: '#FFFFFF',
    regionsSelectable: false,
    series: {
        regions: [{
            values: Chhetri,
            scale: ['#fffad6', '#d05300'],
            normalizeFunction: 'polynomial'
        }]
    }
};

function Eco_regions(settings) {
    $('#world-map').vectorMap(settings);
};

$('#change_ecoregions').click(function (e) {
    e.preventDefault();
    test.map = 'developmentRegionMap';
    test.series.regions[0] = testvalue;
    Eco_regions(test);
});
于 2013-07-03T13:48:47.880 回答
0

您正在调用一个函数setValues,除非您省略了一些代码,否则您还没有定义它。如果你改变它,test.series.regions[0].values = testvalue;你应该有更好的运气。此外,如果没有引号,testvalue则未定义(除非它在某处是全局的),因此您需要为该变量分配一些值,或者用引号将其括起来以使其成为字符串。

于 2013-07-03T13:45:59.370 回答