Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chartJS:如何在单击时返回最近的x轴标签_Javascript_Chart.js_Chartjs 2.6.0 - Fatal编程技术网

Javascript chartJS:如何在单击时返回最近的x轴标签

Javascript chartJS:如何在单击时返回最近的x轴标签,javascript,chart.js,chartjs-2.6.0,Javascript,Chart.js,Chartjs 2.6.0,我有一个chartJS线图,x轴标签是每个小时标记的最后72小时(例如:[8:00am,9:00am,10:00am,…])。有没有办法在单击时返回最近的xAxis标签?我找到了一种返回图形的x-y坐标的方法,但是这些坐标是以像素为单位的,图形能够根据浏览器窗口的大小调整自身大小。如果考虑到当前浏览器窗口的大小和显示的标签数量,我可以计算出哪个标签最接近,但我希望有一种更简单的方法来做到这一点 我的一个想法是单击返回“工具提示”所在的标签。这在逻辑上是等效的,因为在我的选项中,每当鼠标在图形上时

我有一个chartJS线图,x轴标签是每个小时标记的最后72小时(例如:[8:00am,9:00am,10:00am,…])。有没有办法在单击时返回最近的xAxis标签?我找到了一种返回图形的x-y坐标的方法,但是这些坐标是以像素为单位的,图形能够根据浏览器窗口的大小调整自身大小。如果考虑到当前浏览器窗口的大小和显示的标签数量,我可以计算出哪个标签最接近,但我希望有一种更简单的方法来做到这一点

我的一个想法是单击返回“工具提示”所在的标签。这在逻辑上是等效的,因为在我的选项中,每当鼠标在图形上时,工具提示总是显示最近的刻度。是否可以在单击时返回工具提示标签


我的最终目标是在单击图形时访问最近的x轴标签(作为字符串)。这可能吗?

您可以向图表添加自定义onclick函数,然后向chartjs询问该位置的元素

有关完整答案,请参见本期,并举例说明:

document.getElementById("myChart").onclick = function (evt) {
        var activePoints = myChart.getElementsAtEventForMode(evt, 'point', myChart.options);
        var firstPoint = activePoints[0];
        var xLabel = myChart.data.labels[firstPoint._index];
        // Do things with your x label
    };