2013-08-06 35 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

相關問題