Jquery函数附加变量

时间:2013-07-03 13:35:10

标签: javascript jquery jvectormap

我试图使用jQuery函数(最后)在 test 变量中附加 map values 的值。我该怎么做?

我想将 map:'ecoMap'的值更改为 map:developmentRegionMap 值:Chherti 值: 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();
});

5 个答案:

答案 0 :(得分:2)

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

jQuery('#vmap').vectorMap('set', 'map', 'developmentRegionMap');

答案 1 :(得分:1)

  

我想将map:'ecoMap'的值更改为map:developmentRegionMap和values:Chherti to 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);
});

答案 2 :(得分: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);
    
  4. Here is a fiddle作为示例。

答案 3 :(得分:0)

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

答案 4 :(得分: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);
});