0

jQuery関数(最後にある)を使用して、このテスト変数内にマップのと値を追加しようとしています。どうすればいいですか?

map: 'ecoMap' の値をmap: developmentRegionMapおよびvalues: Chhertiからvalues: 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 pluginを使用していると仮定すると、作成後に値を変更するには、これを行う必要があります (未テスト):

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

変数を変更してマップを再描画するための優れた方法が見つかりませんでした。古い地図を吹き飛ばして、新しい地図を追加する必要があるかもしれません。

  1. マップの要素を定義する

    var mapElement = '<div id="world_map" style="width:600px; height: 400px;">';
    
  2. コンテナ div を作成する

    <div id="container"></div>
    
  3. change イベントが発生したら、古いマップを削除し、新しい要素をコンテナーに追加しvectorMapて、新しい設定で関数を呼び出します。

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

例としてフィドルを次に示します。

于 2013-07-03T21:31:43.287 に答える
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 に答える
0

setValues一部のコードを省略しない限り、定義していない関数を呼び出しています。に変更すると、test.series.regions[0].values = testvalue;運が良くなるはずです。また、引用符なしでtestvalueは (どこかでグローバルでない限り) 未定義であるため、その変数に何らかの値を割り当てるか、引用符で囲んで文字列にする必要があります。

于 2013-07-03T13:45:59.370 に答える
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 に答える