ChartJS v2:点击坐标处的刻度值(时间刻度)

All*_*nJB 5 javascript chart.js

我有一个时基折线图,我试图获取点击坐标处每个比例的值。

我的 onClick 函数在 ChartJS 选项中指定:

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);
},
Run Code Online (Sandbox Code Playgroud)

JSFiddle:https://jsfiddle.net/AllenJB/dmebo9g5/1/

上面的代码似乎适用于 Y 轴,但不适用于 X(时间刻度) - 无论您单击图表中的哪个位置,它总是返回最后一个值。

我可能做错了什么?

All*_*nJB 4

这段代码实际上工作得很好。唯一的问题是我正在查看 moment 对象的 _i 值来检查它的值(这是创建对象时用作初始输入的值,不一定是当前值)。

将 console.log 行更改为以下内容会产生预期/正确的结果:

console.log(event.offsetX, valueX.format('YYYY-MM-DD HH:mm:ss'), null, event.offsetY, valueY);
Run Code Online (Sandbox Code Playgroud)