我试图使用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();
});
答案 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)
我找不到一个很好的方法来更改变量并让它重绘地图。我想你可能需要把旧地图吹走,然后添加一张新地图。
为地图定义元素
var mapElement = '<div id="world_map" style="width:600px; height: 400px;">';
创建容器div
<div id="container"></div>
触发更改事件时,删除旧地图,将新元素附加到容器,然后使用新设置调用vectorMap
函数。
$('#world_map').remove();
$('#container').append(mapElement);
$('#world_map').vectorMap(options);
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);
});