javascript - 更改/交换 Highcharts 数据
问题描述
我已经使用 Highcharts 设置了一个饼图,我需要通过按钮交换数据。第二个按钮(远距离)交换数据没有问题,但是当我尝试用第一个按钮(立即)交换回原始数据时,它不起作用。
这是我的 Codepen: https ://codepen.io/doitliketyler/pen/mQMyGe?editors=1011
我的按钮如下所示:
$('#immediate').click(function() {
chart.series[0].setData(immediate);
});
$('#distant').click(function() {
chart.series[0].setData(distant);
});
关于如何正确完成的任何想法?
解决方案
干得好。问题是,当您设置其中一个数据数组时,它通过引用传递,因此两个数据集都指向同一事物。因此,首先复制您要设置的数据。然后将一个空数组设置为您的数据以清除 highcharts 数据,然后将其设置为复制数组。
var chart = Highcharts.chart('container', {
chart: {
type: 'pie'
},
title: {
text: 'Swap Pie Data'
},
series: [
{
id: 'relative',
name: 'Immediate',
type: 'pie',
size: '100%',
innerSize: '30%',
colorByPoint: true,
data: immediate
},
{
type: 'pie',
size: '30%',
name: 'Original',
colorByPoint: true,
data: original
}
]
});
$('#immediate').click(function() {
var temp = immediate.slice(0);
chart.series[0].setData([]);
chart.series[0].setData(temp);
});
$('#distant').click(function() {
var temp = distant.slice(0);
chart.series[0].setData([]);
chart.series[0].setData(temp);
});
推荐阅读
- javascript - 在捆绑包中包含一个 IIFE 模块
- batch-file - 从 FOR 循环中获取包含空格的文件名
- xml - 在两个 XML 文档上使用 if 语句
- php - 额外的 SQL 语句/查询:好主意还是坏主意?
- c# - 不知道如何处理这个 linq 查询
- python-3.x - Getting errors in a python code
- javascript - 使用 Gulp 检查文件中是否存在令牌
- c# - 部署到 VSTS 时无法转换 XML
- android - setOnChronometerTickListener 的问题
- c++ - 在另一个对象构造函数中初始化不可复制的不可移动对象数组