我有一个基于时间的折线图,我试图在点击坐标处获取每个比例的值。
我在ChartJS选项中指定的onClick函数:
onClick: function(event, elementsAtEvent)
{
console.log(event, elementsAtEvent, this);
var valueX = null, valueY = null;
for (var scaleName in this.scales) {
var scale = this.scales[scaleName];
console.log(scale.id, scale.isHorizontal());
if (scale.isHorizontal()) {
valueX = scale.getValueForPixel(event.offsetX);
} else {
valueY = scale.getValueForPixel(event.offsetY);
}
}
console.log(event.offsetX, valueX, null, event.offsetY, valueY);
},
JSFiddle:https://jsfiddle.net/AllenJB/dmebo9g5/1/
上面的代码似乎适用于Y轴,但不适用于X(时间刻度) - 它始终返回最后一个值,而不管您单击的图表中的位置。
我可能做错了什么?
答案 0 :(得分:3)
这段代码实际上运行正常。唯一的问题是我正在查看moment对象的_i值来检查它的值(这是在创建对象时用作初始输入的值,不一定是当前值)。
将console.log行更改为以下内容会产生预期/正确的结果:
console.log(event.offsetX, valueX.format('YYYY-MM-DD HH:mm:ss'), null, event.offsetY, valueY);