2016-01-13 39 views
0

我正在嘗試查找amcharts是否具有像highchart一樣具有傳奇功能的複選框。在這裏的一些例子 -Amcharts - 複選框圖例

http://stackoverflow.com/questions/19174158/in-highchart-legend-want-to-bring-checkbox-at-start 
    http://jsfiddle.net/lukelarsen/yHGS9/9/ 
http://flexdevtips.blogspot.co.nz/2009/10/linechart-with-checkbox-legend.html 

我試圖把複選框圖表外&添加監聽&等等。它變得複雜。所以想知道如果有人有這個要求&已經設法實現它?

任何幫助將非常有幫助。

+0

AmCharts圖例的工作原理與複選框一樣。 – gerric

+0

你好Gerric - 謝謝。我同意它有複選框效果。我希望有一個複選框,以提高用戶友好性。這可能嗎? – usert4jju7

回答

2

你去那裏:

首先我們要添加事件監聽器創建每次圖表重繪框。 (這是必要的,因爲複選框是傳說中的子元素和傳說是重建每次發生某事與圖表)

chart.addListener("init", function() { 
    chart.addListener("drawn", createCheckboxes); 
    chart.legend.addListener("showItem", createCheckboxes); 
    chart.legend.addListener("hideItem", createCheckboxes); 
} 

然後,我們正在爲每個圖例項的一個複選框。

function createCheckboxes() { 
    var legend = chart.legend.legendData; 
    var div = $("<div style='position:absolute; top: 10px'></div>"); 
    for(var i = 0; i < legend.length; i++) { 
     div.append("<input style='float: left; " 
      + "position: absolute; top:" + legend[i].legendEntry.y + "px' " 
      + "type='checkbox'" + (legend[i].hidden ? " " : " checked ") 
      + "onclick=toggleItem(" + i + ")></input>"); 
    } 
    div.appendTo($(chart.legend.div)); 
} 

最後一步是處理複選框上的點擊事件。

var toggleItem = function(i) { 
    chart.legend.clickLabel(chart.legend.legendData[i], event); 
} 

就是這樣。 Demo

+0

這就是我所需要的。你是一個明星@ gerric – Coder