javascript - 选中/取消选中复选框时切换特定的 Highcharts

标签 javascript angularjs highcharts

我有多个使用 highcharts 绘制的散点图,并且我有一个复选框列表,其中的标签对应于 highcharts 中的图例标识符,并且我希望具有这样的功能,以便当我选中/取消选中该框时,它会使相应的图可见/动态隐藏。我该如何实现这个目标?

最佳答案

要实现您期望的功能,您需要在每个 onchange 上使用 Series.update() 函数切换 Series.showInLegend 标志复选框上的 code> 事件,并调用本系列的 setVisible() 函数来切换其在绘图上的可见性。下面是如何实现它的示例代码:

首先,您需要定义类似于以下内容的复选框:

<input id="series1" type="checkbox" checked>Installation<br/>
<input id="series2" type="checkbox" checked>Manufacturing<br/>
<input id="series3"type="checkbox" checked>Sales and Distribution<br/>

然后对每个复选框进行操作,并向其中添加一个 onchange 事件函数。在这个函数中,您需要更新适当的系列 showInLegend 值,正如我上面所说的。您应该能够通过检查系列对象中是否存在 legendItem 来做到这一点。看一下下面的代码:

var checkboxes = ['series1', 'series2', 'series3']

checkboxes.forEach((elem, i) => {
    var checkbox = document.getElementById(elem)
    checkbox.onchange = function() {

        chart.series[i].update({
            showInLegend: chart.series[i].legendItem ? false : true
        })
        chart.series[i].setVisible()

    }
})

实例:https://jsfiddle.net/uuwu48cm/

关于javascript - 选中/取消选中复选框时切换特定的 Highcharts ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50413413/

相关文章:

javascript - 可调整大小的容器对我不起作用

javascript - 如何检查一个div中是否没有其他可见的div?

json - 在 Ng-Table 上加载 JSON 数据后分页不起作用

javascript - 如何将json(对象)推送到本地存储 Angular js中的数组?

javascript - 单击 angularjs 中的另一个元素时如何模拟单击一个元素

javascript - Highcharts 标记大小在悬停时/悬停后发生变化

javascript - 用 "and"替换字符串中的最后一个逗号

canvas - 对 HighCharts、D3 和 Canvas 绘图进行基准测试

javascript - Highcharts 饼图导出,标签渲染两次

javascript - 单击后不会立即加载预加载器