我在我的XY柱状图上单独放置了一个复选框。原始图表的每个series.stacked = true。这可以很好地工作。我在复选框上有一个监听程序,用于从堆叠列切换到独立列。它在每个系列上设置(切换)相同的堆叠属性。不幸的是,没有任何更新。在属性赋值之后,我尝试在图表上调用invalidateData() -但这也不能更新堆叠/去堆叠函数。
$("#chartAssetsTimelineIndividualColumns").change(function () {
chartAssetsTimeline.series.values.forEach(function (series) {
series.stacked = !this.checked;
});
});
发布于 2020-01-29 02:45:45
当您在forEach方法中时,this
不会引用input元素,因为它的作用域是此时的window对象。您可能希望保存对它的引用并使用它,或者只使用change
方法提供的事件对象。此外,您应该使用each
函数,而不是遍历只读values
数组。
$('#chartAssetsTimelineIndividualColumns').change(function() {
var that = this;
chartAssetsTimelineIndividualColumns.series.each(function(series) {
series.stacked = !that.checked;
});
});
// or
$('#chartAssetsTimelineIndividualColumns').change(function(e) {
chartAssetsTimelineIndividualColumns.series.each(function(series) {
series.stacked = !e.target.checked;
});
});
// or, preferably, with VanillaJS:
document.getElementById('chartAssetsTimelineIndividualColumns').addEventListener('change', function(e) {
chartAssetsTimelineIndividualColumns.series.each(function(series) {
series.stacked = !e.target.checked;
});
});
https://stackoverflow.com/questions/59954718
复制