当点具有向下钻取时,获取Highcharts中点击的点的名称

use*_*133 3 javascript jquery highcharts

我有一个饼图,其中一个点有钻取,其他点没有.当我使用plotOptions.series.point.events.click检测到单击并尝试返回单击点的名称时,它适用于除了具有向下钻取的点之外的每个点.

如果我做:

plotOptions: {
  series: {
    point: {
      events: {
        click: function(e) {
          console.log(this.name);
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,除了具有向下钻取的点之外,每个点都会显示正确的名称,这将返回一个空点.这可能是因为图表首先通过向下钻取更新,并且在事件回调发生时该点不再存在.我怎样才能使点击时常规点和钻取点都能正常返回?

我添加了一个JSFiddle来说明我的观点:http: //jsfiddle.net/Pq6gb/2/ 我刚刚从Highcharts演示页面中获取了一个饼形钻取示例,并且使得Firefox没有进行深入研究.请注意,在浏览器的控制台中,当我单击Firefox时,会显示名称.单击任何其他切片时,显示的名称为空.

Tor*_*nsi 7

现在在drilldown.src.js的当前开发版本中修复了这个问题:http://jsfiddle.net/highcharts/Pq6gb/3/

point: {
    events: {
        click: function(e) {
            console.log(e.type, this.name);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Hal*_*and 5

虽然不理想,但这会给你一些常规和深入的事件:

chart: {
    ...,
    events: {
        drilldown:  function (e) {
            console.log(e.point); // The point, with name, that was clicked
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

除了您自己的代码,这将触发一个常规点(您自己的代码)事件和两个钻取点事件.然后,您就可以签name == nullseries.point.events.click并忽略它,并在chart.events.drilldown(API参考)中处理它.