ECharts 事件处理学习笔记
本文介绍ECharts的事件处理机制,并通过实例进行解释。
事件处理机制
ECharts采用类似浏览器的事件机制,即在图表上发生某个事件时,将会触发一个事件回调函数。通过在图表实例(echarts
对象)上调用相应的接口来注册事件处理函数,如下所示:
javascriptCopy Codechart.on(eventName, eventHandler);
其中,eventName
表示事件名称,如click
、dataZoom
等,eventHandler
表示事件处理函数。
除了注册事件处理函数外,还可以通过chart.off(eventName, eventHandler)
方法取消事件处理函数的注册。
事件对象
在事件处理函数被调用时,会传入一个事件对象作为参数。事件对象包含以下属性:
type
:事件类型,如click
、dataZoom
等。event
:原始的DOM事件对象,可以通过该属性访问事件的更多信息。data
:与触发事件相关联的数据项。componentType
:触发事件的组件类型,如series
、axis
等。componentIndex
:触发事件的组件在当前图表中的索引。name
:触发事件的数据项名称。coord
:触发事件的坐标值。
实例
下面是一个简单的实例,展示了如何使用ECharts的事件处理机制。我们创建一个柱状图,并在柱子上注册click
事件处理函数,在点击柱子时弹出该柱子对应的数据项名称。
javascriptCopy Code// 初始化echarts实例
var chart = echarts.init(document.getElementById('chart'));
// 填充数据
var data = [5, 20, 36, 10, 10, 20];
// 配置项
var option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
},
yAxis: {
type: 'value'
},
series: [{
data: data,
type: 'bar',
// 注册click事件处理函数
label: {
show: true,
position: 'top',
formatter: function(params) {
return params.name;
}
},
itemStyle: {
normal: {
color: function(params) {
var colorList = ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83'];
return colorList[params.dataIndex]
}
}
},
emphasis: {
itemStyle: {
color: '#FF4500'
}
}
}]
};
// 注册click事件处理函数
chart.on('click', function(params) {
alert(params.name);
});
// 使用刚指定的配置项和数据显示图表。
chart.setOption(option);
以上代码会在页面上绘制一个柱状图,并在柱子上注册click
事件处理函数。当某个柱子被点击时,会弹出该柱子对应的数据项名称。