我是一名Java / PHP程序员,无法掌握Javascript,所以我需要一些简单的东西。
在此处获取图表:http://www.highcharts.com/stock/demo/compare
这显示了3个系列,它们都是预定义的。我有与我自己的数据相同的设置。
我实际拥有的是150系列数据,我希望用户能够选择在没有页面刷新的情况下显示哪些数据。我知道我需要以某种方式使用Chart.addSeries(),我看了一个演示,它通过点击按钮添加了一个系列:http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/stock/members/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>
我不喜欢150个按钮,但我当然不希望每个按钮有一个独特的功能。有人可以重写一个我可以蚕食的简短例子吗?我的JS真的太简陋了。
也许复选框没问题,但实际上任何类型的切换都可以。可以从图表中删除系列(除了点击图例)吗?
任何人都可以提供一些关于将150系列列表绑定到图表本身的技巧吗?
必须通过JSON单独加载每个系列。
或者,我应该只加载所有150个系列并禁用其中的149个,允许用户通过图例本身进行切换?
答案 0 :(得分:6)
我使用复选框为您制作了解决方案。目标复选框是具有“选择”类的复选框。 “foreach”功能遍历所有复选框。该名称成为当前选择的“值”,并且由于您没有为数据提供任何上下文,因此当前正在手动输入数据。你可以玩它并让它适合你。
$('#button').click(function() {
var buttons = $('.choice');
var chart = $('#container').highcharts();
buttons.each(function(){
var choice = this.value;
chart.addSeries({
name: choice,
data: ADBE
});
});
});