javascript – 懒惰的Highcharts明细

前端之家收集整理的这篇文章主要介绍了javascript – 懒惰的Highcharts明细前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
This JSFiddle demo显示了Highcharts明细的示例.单击图表中的某列时,系列将替换为与单击的列对应的向下钻取系列
  1. drilldown: {
  2. series: [{
  3. id: 'animals',data: [
  4. ['Cats',4],['Dogs',2],['Cows',1],['Sheep',['Pigs',1]
  5. ]
  6. },{
  7. id: 'fruits',data: [
  8. ['Apples',['Oranges',2]
  9. ]
  10. },{
  11. id: 'cars',data: [
  12. ['Toyota',['Opel',['Volkswagen',2]
  13. ]
  14. }]
  15. }

例如,如果单击fruits列,将显示此数据

  1. data: [
  2. ['Apples',2]
  3. ]

请注意,必须预先创建所有向下钻取系列.在这种特殊情况下,只有3个向下钻系列,所以这不是一个大问题.但是,在我的情况下,大约有30个向下钻取系列,并且创建每个系列需要执行一些查询.有没有办法让钻取系列延迟加载,即仅在用户点击其中一列时请求钻取系列数据?

解决方法

对于这个级别的功能,我会继续自己创建它.使用point.events.click回调进行ajax调用并替换系列:
  1. plotOptions: {
  2. series: {
  3. point: {
  4. events: {
  5. click: function(event) {
  6. var chart = this.series.chart;
  7. var name = this.name;
  8. $.ajax({
  9. url: name + ".json",success: function(data) {
  10. swapSeries(chart,name,data);
  11. },dataType: "json"
  12. });
  13. }
  14. }
  15. }
  16. }
  17. },

swapSeries在哪里:

  1. function swapSeries(chart,data) {
  2. chart.series[0].remove();
  3. chart.addSeries({
  4. data: data,name: name,colorByPoint: true
  5. });
  6. }

这是一个工作example.

猜你在找的JavaScript相关文章