gpt4 book ai didi

highcharts - 有没有办法让切换的图例项在刷新时保存其状态?

转载 作者:行者123 更新时间:2023-12-05 04:05:23 26 4
gpt4 key购买 nike

目前有没有办法让图例项在刷新时保存其状态?例如,我有一个包含 3 条线的图表:a、b 和 c。我关闭 c 线,因此它不会显示在图表上。目前刷新页面时,a、b、c会重新出现在图表上。有没有办法让它记得关闭 c?

最佳答案

使用localStorage 功能来存储图表系列可见性的当前状态。单击图例项时需要更改本地存储位置的状态,因此只需使用 plotOptions.series.events.legendItemClick 处理程序,然后在每个图表上 load事件,根据存储的信息设置您的系列可见性。

  chart: {
events: {
load: function() {
var series = this.series;
// If there is no legend items visibility flags saved in local storage, save them.
if (!localStorage.legendItems) {
let legend = []
series.forEach(function(series) {
legend.push(series.visible)
})
localStorage.legendItems = legend.toString()
//
} else {
let legend = localStorage.legendItems.split(',')
let legendBooleans = []
legend.forEach(function(elem) {
var isTrueSet = (elem === 'true')
legendBooleans.push(isTrueSet)
})
legendBooleans.forEach(function(state, i) {
series[i].update({
visible: state
})
})
}
}
}
},
plotOptions: {
series: {
events: {
legendItemClick: function() {
var series = this.chart.series
var index = this.index
var legend = localStorage.legendItems.split(',')
var legendBooleans = []
legend.forEach(function(elem) {
var isTrueSet = (elem === 'true')
legendBooleans.push(isTrueSet)
})
// toggle series visibility flag and override it in local storage
legendBooleans[index] = !legendBooleans[index]
localStorage.legendItems = legendBooleans.toString()
}
}
}
},

有什么问题,尽管问。

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

API 引用:https://api.highcharts.com/highcharts/plotOptions.series.events.legendItemClick https://api.highcharts.com/highcharts/chart.events.load

关于highcharts - 有没有办法让切换的图例项在刷新时保存其状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51313462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com