如何在AnyChart堆叠柱状图点击时获取系列名称?
如何在AnyChart堆叠柱状图点击时获取系列名称?
我懂你的困扰——点击柱状图时能拿到数据点的值和x轴信息,但系列名称一直返回undefined,就是拿不到你设置的"Requirements Complete"对吧?
问题出在你目前用的e.iterator是针对单个数据点的,它的name属性对应的是数据点自身的名称(如果你的数据源里定义过的话),而不是整个系列的名称。要获取系列名称,你得从事件对象里的系列实例入手:
解决方案步骤:
- 首先确保你的系列明确设置了名称(如果
setupSeriesLabels没有自动帮你完成这件事):
在创建系列后,调用series.name()方法设置系列名称:series.name("Requirements Complete"); - 在
pointClick事件回调里,通过e.target获取当前系列实例,再调用name()方法就能拿到系列名称了:
修改后的完整代码示例:
series = chart.column(thirdSeriesData); series.name("Requirements Complete"); // 明确设置系列名称 setupSeriesLabels(series, "Requirements Complete"); series.fill("green"); series.listen("pointClick", function (e) { console.log(e.iterator.get("value")); console.log(e.iterator.get("name")); // 这是数据点的名称(若数据源有定义) console.log(e.iterator.get("x")); // 获取系列名称的正确方式 const seriesName = e.target.name(); console.log(seriesName); // 这里会输出"Requirements Complete" });
原理说明
e.target指向的是触发点击事件的整个系列对象,而非单个数据点。AnyChart的系列对象内置了name()方法,用于获取(或设置)系列的名称,所以通过它就能轻松拿到你想要的系列名称了。
内容的提问来源于stack exchange,提问作者Ayush Kumar
相关产品推荐
相关产品推荐

