Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Highcharts/Highstock动态添加/删除多个系列_Javascript_Dynamic_Highcharts_Highstock - Fatal编程技术网

Javascript Highcharts/Highstock动态添加/删除多个系列

Javascript Highcharts/Highstock动态添加/删除多个系列,javascript,dynamic,highcharts,highstock,Javascript,Dynamic,Highcharts,Highstock,我是一名Java/PHP程序员,不合理地无法掌握Javascript,因此我需要一只简单的手 请看下面的图表: 这显示了3个系列,它们都是预定义的。我用我自己的数据设置了等效项 我实际拥有的是150个系列的数据,我希望用户能够在不刷新页面的情况下选择要显示的数据。我知道我需要以某种方式使用Chart.addSeries(),我已经看过了演示,它通过单击按钮添加了一个系列: 问题是,这个按钮在网页和JS中都是硬编码的: <button id="button">Add series<

我是一名Java/PHP程序员,不合理地无法掌握Javascript,因此我需要一只简单的手

请看下面的图表:

这显示了3个系列,它们都是预定义的。我用我自己的数据设置了等效项

我实际拥有的是150个系列的数据,我希望用户能够在不刷新页面的情况下选择要显示的数据。我知道我需要以某种方式使用Chart.addSeries(),我已经看过了演示,它通过单击按钮添加了一个系列:

问题是,这个按钮在网页和JS中都是硬编码的:

<button id="button">Add series</button>

<script>
$('#button').click(function() {
    var chart = $('#container').highcharts();
    chart.addSeries({
        name: 'ADBE',
        data: ADBE
    });
    $(this).attr('disabled', true);
});
</script>
添加系列
$(“#按钮”)。单击(函数(){
var chart=$(“#容器”).highcharts();
chart.addSeries({
名称:“ADBE”,
资料来源:ADBE
});
$(this.attr('disabled',true);
});
我不喜欢150个按钮,但我当然不希望每个按钮都有唯一的功能。有人能改写一个我可以吃人的简短例子吗?我的JS真的太初级了

也许复选框可以,但实际上任何类型的切换都可以。是否可以从图表中删除系列(单击图例除外)

有人能提供一些将150个系列的列表与图表本身联系起来的技巧吗

每个系列都必须通过JSON单独加载


或者,我应该加载所有150个系列并禁用其中149个,允许用户通过图例本身进行切换吗?

我使用复选框为您提供了一个解决方案。目标复选框是带有“choice”类的复选框。“foreach”函数通过所有复选框。该名称将成为当前选择的“值”,由于您没有为数据提供任何上下文,因此当前正在手动输入数据。你可以玩它,让它为你工作

$('#button').click(function() {
    var buttons = $('.choice');
    var chart = $('#container').highcharts();

    buttons.each(function(){
        var choice = this.value;

        chart.addSeries({
            name: choice,
            data: ADBE
        });
    });
});

这无疑是朝着正确方向迈出的一步,它将允许用户选择多个系列;谢谢不幸的是,这是一次性的;需要重新加载页面才能更改任何内容。这可以改进吗?好的,你离我很近,我真的很感谢你的时间,但还有最后一个问题:所有检查点都显示相同的数据。我们有数据存在,只需要以某种方式切换到它。堆栈溢出与人们为您提供解决方案无关。这是关于帮助你找到解决方案。请记住这一点。我不知道应用程序上下文,也不会尝试为您设计最佳解决方案。那是你的工作。然而,这里是修改后的fiddle,前提是所有“系列”都被引用为全局变量,与您现在引用它们的方式相同。