2013-08-06 19 views
3

使用jquery和jqvmap,我在美国地图中设置了多种状态颜色。例如,要颜色所有以“A”红色启动状态,这个工程:jqvmap - 将颜色应用于多个州/地区

jQuery('#vmap').vectorMap('set', 'colors', {al: 'red'}); 
jQuery('#vmap').vectorMap('set', 'colors', {ak: 'red'}); 
jQuery('#vmap').vectorMap('set', 'colors', {az: 'red'}); 
jQuery('#vmap').vectorMap('set', 'colors', {ar: 'red'}); 

是有办法使该短?我想这样做:

var astates = ["al", "ak", "az", "ar"]; 
for (var i = 0; i < astates.length; ++i) { 
    jQuery('#vmap').vectorMap('set', 'colors', { 'astates[i]' : 'red'}); 
} 

但这似乎并不奏效。 感谢

+0

不知道,如果它只是一个错字,当你张贴的问题,但我不认为你的astates变量应该是在引号。但你是正确的,它需要是一个字符串......所以要么逃避这些引号,要么做丑陋的旧''''''' 你的循环看起来应该是另外的工作。 – hardba11

+0

看到这个问题:http://stackoverflow.com/questions/15510913/jqvmap-how-do-i-set-a-state-color-in-the-usa-map – Upperstage

回答

3
var fc = 'red'; // you'll need this if you'll want to change the whole group color someday 
jQuery('#vmap').vectorMap('set', 'colors', {al: fc, ak: fc, az: fc, ar:fc}); 
+0

谢谢,这个伎俩 – jcaponi

2
colorsST = {}; 
var astates = ["al", "ak", "az", "ar"]; 
for (var i = 0; i < astates.length; ++i) { 
    colorST[i] = 'red'; 
    jQuery('#vmap').vectorMap('set', 'colors', colorST); 
} 
+0

通过'colorST [i]'您不是将状态分配为属性,而是将其分配给索引。这就是你会得到的:'0:'红色',1:'红色'等等......所以,你应该做'colorST [astates [i]] ='red''。这将按预期分配状态名称。 – yulolimum

相关问题