目前我可以更改单个点的颜色(在折线图上),但当您单击它时,它会立即变回以前的颜色,我如何才能防止这种情况?
下面是我的函数:
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。
2条答案
按热度按时间dsf9zpds1#
以下方法利用:
pointBackgroundColor
数据集属性,一个将保存点的当前颜色的数组。当单击某个点时,关联的数组值将更改为white
,并且图表将更新。onClick
图表选项,这是一个“如果事件的类型为'mouseup'或'click',则会呼叫”的函数。它是“在图表的内容中呼叫,并传递事件和作用中元素的数组”。更多信息,请访问docs。
长话代码:
第一个
And a fiddle to play with.
rqenqsqc2#
更新V3的接受答案,也通过不使用硬编码的datasetIndex使其更加灵活。
第一个