我每次点击一个系列的某个点时都需要获取点数详细信息,但点击一个areapline重叠点并不会触发“点击”。事件。仅当系列的点位于前面时才触发。
plotOptions: {
series: {
events: {
click: function(event) {
alert(this.name);
}
}
}
},
我做了一个小fiddle来展示它。
感谢。
答案 0 :(得分:0)
如果您将trackByArea选项设置为true,即使系列位于其他系列后面,也会启用捕获点击事件。
plotOptions: {
series: {
trackByArea: true,
events: {
click: function(event) {
alert(this.name);
}
}
}
},
示例:http://jsfiddle.net/83x6L69x/
然而,即使您没有完全点击该点,这也会捕获事件。为避免这种情况,您可以检查点击事件是否在点标记内完成:
plotOptions: {
series: {
trackByArea: true,
point: {
events: {
click: function(e) {
console.log(this)
const group = this.series.group
const x = e.chartX - this.plotX - group.translateX
const y = e.chartY - this.plotY - group.translateY
const d = (x * x + y * y)
const rPlus = this.graphic.states.hover.radiusPlus // it is an additional radius when the point is hovered
const r = this.graphic.radius + (rPlus || 0)
if (x * x + y * y <= r * r) {
alert(this.series.name)
}
}
}
}
}
},