之前一直使用echarts做一些图表,但没有做过点击事件。当做项目遇到需要在折线图面板任意位置点击,获取当前点击的时间。echarts折线图本身是有节点 点击事件的 container.on(‘click’, function (params) {}) 方法,代码如下:
container.on('click', 'series.line',function (params) {
alert(params.name);
});
但是尝试了后,发现并不能满足需求。在网上搜了下,知道了click事件不能支持面板区域随意点击。用 getZr() 方法可以满足我想要的效果。
container.getZr().on('click', 'series.line', function (params) {
var pointInPixel= [params.offsetX, params.offsetY];// 转换像素坐标值到逻辑坐标系上的点
if (container.containPixel('grid',pointInPixel)) {
var xIndex=pointInGrid[0];//X轴序号
var op=myChart.getOption();//获取当前图表的option
var month=op.xAxis[0].data[xIndex];//获得图表中我们想要的数据
alert(params);
console.log(params);
}
});