2014-01-10 22 views
0

我有幾個重複的Highchart線圖使用相同的vars配置。從另一個單獨的javascript函數訪問值

graph.js

function getColor(){ 
    var getColor ={ 
    facebook: "#3d599b", 
    twitter: "#00abee", 
    instagram: "#517fa4", 
    soundcloud: "#fa3d00", 
    youtube: "#d43c3b", 
    tumblr: "#3d5a71", 
    vine: "#00b589", 
    foursquare: "#0abadf", 
    linkedin: "#007ab9", 
    vimeo: "#1ab7ea", 
    fivehundredpx: "#000000", 
    wordpress: "#257ba0", 
    rdio: "#028ed4", 
    behance: "#000000", 
    flickr: "#ff0084", 
    google: "#e52d27", 
    facebook_page: "#3d599b" 
    }; 
    } 

new_graph.js

var seriesOptions = [], 
     yAxisOptions = [], 
     seriesCounter = 0, 
     names = <%= raw get_engagement_data(@user,params[:provider],params[:type]) %>; 

    $.each(names, function(i, name) { 

    seriesOptions[i] = { 
     type: 'areaspline', 
     lineColor: getColor[name[2]], 
     lineWidth: 2, 
     pointInterval: 24 * 3600 * 1000, 
     name: name[0], 
     data: name[1], 
     fillColor: "#000000", 
     fillOpacity: 1, 
     marker: { 
      enabled: false, 
      fillColor: getColor[name[2]] 
     } 
    }; 

    // As we're loading the data asynchronously, we don't know what order it will arrive. So 
    // we keep a counter and create the chart when all the data is loaded. 
    seriesCounter++; 

    if (seriesCounter == names.length) { 
     createChart(); 
    } 
}); 

從DIFF試圖訪問變量從getColor功能。 JavaScript文件,但沒有工作。

+3

回報從'getColor',改變'var'結果(該聲明一個局部變量)'return'然後用'VAR色=的getColor()'當你需要訪問它。 –

+0

嗨,感謝您的建議。現在它工作得很好。我會一如既往地關注'return'。謝謝。 – xirukitepe

回答

0

改變你的函數:

function getColor(nam) 
    { 
     var colors ={ 
     facebook: "#3d599b", 
     twitter: "#00abee", 
     instagram: "#517fa4", 
     soundcloud: "#fa3d00", 
     youtube: "#d43c3b", 
     tumblr: "#3d5a71", 
     vine: "#00b589", 
     foursquare: "#0abadf", 
     linkedin: "#007ab9", 
     vimeo: "#1ab7ea", 
     fivehundredpx: "#000000", 
     wordpress: "#257ba0", 
     rdio: "#028ed4", 
     behance: "#000000", 
     flickr: "#ff0084", 
     google: "#e52d27", 
     facebook_page: "#3d599b" 
     }; 
    return colors[nam]; 
    } 
相關問題