如何从外部图表创建功能与Amcharts连接?

abs*_*ntx 12 html javascript jquery

如果我创建了一个amchart,并且在创建中我将其中一个数据集的隐藏值设置为true:

function loadChart(container, chartstodisplay) {

    AmCharts.ready(function () {
        //Do all my regular chart creation here

        //but make sure hidechart shows up hidden
        if(key == 'hidechart'){
            graphs[key].hidden = true;
        }                           

        //now write the chart
        chart.write(container);
    });
}
Run Code Online (Sandbox Code Playgroud)

现在我在我的页面后面,我有一些与图表等相关联的HTML.例如,我有一个链接,如果你将鼠标悬停在上面,我希望"hidechart"现在可见,请认识到这个功能是与AMcharts创建的图例块完全分开,您可以单击以隐藏/取消隐藏,这在页面html上是单独的.

$(document).ready(function(){

    $('#some_parent').on('click','span.unhide',function(){
        //now go back to the hidden chart element from above and change
        graph['hidechart'].hidden = false;
        //obviously that doesn't work
     })

})
Run Code Online (Sandbox Code Playgroud)

那么我是否可以触及并影响图表和图表?我该如何处理?

Spa*_*Dog 7

你没有真正提供足够的代码来使用,例如你如何添加图表,但我认为如果我做出一些假设,我可以提供帮助.

我假设你有一个图表数组,你要添加到图表中,首先确保图形数组和图表对象是全局的,所以在函数之外(即之前loadChart)声明它们:

var chart;
var graphs;
Run Code Online (Sandbox Code Playgroud)

然后按照从建议的文件hidden:

指定是否隐藏图形.不要使用它来显示/隐藏图形,而是使用hideGraph(图形)和showGraph(图形)方法.

对于documenation showGraphhideGraph在这里.

因此,您需要更新隐藏例程(在添加图表后):

 //but make sure hidechart shows up hidden
     if (key == 'hidechart'){
     chart.hideGraph(graphs[key]);
 }           
Run Code Online (Sandbox Code Playgroud)

最后,您可以通过访问两个全局对象来显示:

 $('#some_parent').on('click','span.unhide',function(){
     //now go back to the hidden chart element from above and change
     chart.showGraph(graphs['hidechart']);
     //should work now
 })
Run Code Online (Sandbox Code Playgroud)

我已经在本地进行了测试并且它可以工作,如果这无助于考虑发布更多代码或创建jsFiddle作为示例.同时从论坛中查看此答案.