2013-09-25 31 views
1

我創建了一個帶flot庫和y軸的線圖我所有的滴答是縮寫,我想讓我所有的滴答作爲超鏈接等打開他們得到一個頁面更多關於abb的信息。如何使yaxis滴答作爲超鏈接在flot圖

這裏是我的代碼,使Y軸:

var ranks = Context.CreateDataContext().Ranks.OrderBy(c => c.RankID); 
     var yaxis = new StringBuilder(" { yaxis : {ticks:["); 
     foreach (var item in ranks) 
     { 
      if (item.RankID == 0) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "None"); 
       if (item.RankID == 1) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "AMB"); 
       if (item.RankID == 2) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "BA"); 
       if (item.RankID == 3) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "SA"); 
       if (item.RankID == 4) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "GA"); 
       if (item.RankID == 5) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "PA"); 
       if (item.RankID == 6) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "RA"); 
       if (item.RankID == 7) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "EA"); 
       if (item.RankID == 8) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "DA"); 
       if (item.RankID == 9) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "DDA"); 
       if (item.RankID == 10) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "TDA"); 
       if (item.RankID == 11) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "PDA"); 
       if (item.RankID == 12) 
        yaxis.AppendFormat(@"[{0},'{1}'],", item.RankID, "CDA"); 
     } 
     yaxis.Append("]}}"); 

,我想使 「AMB」, 「BA」, 「SA」, 「GA」 ......所有的鏈接或提示..

謝謝!!

回答

3

您可以嘗試tickFormatter選項來自定義刻度標籤(有關更多詳細信息,請參閱documentation)。起點:

function formatter(val, axis) { 
    return '<span title="' + getFullNameForAbbreviation(val) + '">' + val + '</span>'; 
} 

您將不得不添加函數以從縮寫中獲取全名。

+1

下面是一個小提琴實現@ Raidri的建議:http://jsfiddle.net/CaMFz/,請注意,爲了使超鏈接可點擊,我必須提高它們的'z-index'才能使它們位於畫布的頂部。 – Mark

+0

這很棘手,因爲覆蓋畫布是覆蓋它們的東西,它應該(儘管通常不是絕對必要的)具有更高的Z指數。最好的解決方案是使用pointer-events屬性,但我認爲它不支持IE或Opera。無論如何可能值得做,至少可以幫助一些人。更醜陋的解決方案是代理事件。 – DNS