我有一个饼图,其中一个点有下钻,其他点没有。当我使用plotOptions.series.point.events.click检测到单击并尝试返回单击点的名称时,它适用于除了具有向下钻取的点之外的每个点。
如果我这样做:
plotOptions: {
series: {
point: {
events: {
click: function(e) {
console.log(this.name);
}
}
}
}
}
然后,除了具有向下钻取的那个点之外,每个点都会显示正确的名称,这将返回一个空点。这可能是因为图表首先通过向下钻取更新,并且在事件回调发生时该点不再存在。我怎样才能使点击时常规点和钻取点都正确返回?
我添加了一个JSFiddle来说明我的观点: http://jsfiddle.net/Pq6gb/2/ 我刚刚从Highcharts演示页面中获取了pie drilldown示例,并将其设置为Firefox没有向下钻取。请注意,在浏览器的控制台中,当我单击Firefox时,会显示名称。单击任何其他切片时,显示的名称为空。
答案 0 :(得分:7)
现在修复了当前版本的drilldown.src.js:http://jsfiddle.net/highcharts/Pq6gb/3/
point: {
events: {
click: function(e) {
console.log(e.type, this.name);
}
}
}
答案 1 :(得分:5)
虽然不理想,但这会给你一些常规和深入的事件:
chart: {
...,
events: {
drilldown: function (e) {
console.log(e.point); // The point, with name, that was clicked
}
}
}
除了您自己的代码之外,这还会针对常规点(您自己的代码)触发一个事件,并针对下钻点触发两个事件。然后,您可以检查name == null
中的series.point.events.click
,然后忽略它,并在chart.events.drilldown
(API reference)中处理它。