作者:手机用户2602936797 | 来源:互联网 | 2023-02-07 09:01
目前,当你点击它时,我能够改变单个点的颜色(在折线图上),但它会立即改回以前的颜色,我该如何防止这种情况?
这是我的功能:
var optiOns= {
onClick: function(e){
var element = this.getElementAtEvent(e);
if (element.length > 0) {
element[0]._view.backgroundColor = '#FFF';
this.update();
}
}
我在这里发现了同样的问题https://github.com/chartjs/Chart.js/issues/2989,显然这个人能够管理它,但我认为代码不再兼容.
我正在使用ChartJS v2.5.0.
1> xnakos..:
以下方法使用:
的pointBackgroundColor
数据集属性,阵列这将保持点的当前颜色.单击某个点时,关联的数组值将更改为,white
并且将更新图表.
在onClick
图表选项,一个是功能"之称,如果事件的类型是'鼠标松开’或'点击’的." 它是"在图表的上下文中调用并传递事件和一系列活动元素."
更多文档.
长话代码:
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: '# of Votes',
data: [72, 49, 43, 49, 35, 82],
pointBackgroundColor: ["red", "blue", "yellow", "green", "purple", "orange"]
}]
},
options: {
onClick: function(evt, activeElements) {
var elementIndex = activeElements[0]._index;
this.data.datasets[0].pointBackgroundColor[elementIndex] = 'white';
this.update();
}
}
});