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

时间:2014-07-02 21:13:45

标签: javascript jquery highcharts

我有一个饼图,其中一个点有下钻,其他点没有。当我使用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时,会显示名称。单击任何其他切片时,显示的名称为空。

2 个答案:

答案 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.drilldownAPI reference)中处理它。