2017-06-30 37 views
0

我成功地将图例创建为div外部,但是当点击图例外部没有事件在图表上显示/隐藏系列时。将图例饼图highchart自定义为标记div

我觉得在功能事件/负载问题,但我还没有修复。

 events: { 
      load: function() { 
       var chart = this; 
       $(chart.series[0].data).each(function (i, serie) { 
        $('<li style="color: ' + serie.color + '">' + serie.name + '</li>').click(function() { 
         serie.visible ? serie.hide() : serie.show(); 
        }).appendTo('#legend'); 
       }); 
      } 
     } 

这是我的jsfiddle:http://jsfiddle.net/hoanghoang3009/oepyvgtf/

谢谢!

回答

1

使用setVisible

Forked fiddle

events: { 
      load: function() { 
       var chart = this; 
       $(chart.series[0].data).each(function (i, serie) { 
       //console.log(serie) 
        $('<li style="color: ' + serie.color + '">' + serie.name + '</li>').click(function() { 
         serie.visible ? serie.setVisible(false) : serie.setVisible(true); 
        }).appendTo('#legend'); 
       }); 
      } 
     } 
+0

这对我来说很好的回答。我读了关于setVisible(boolean)和series.show()和series.hide()的文档,根据我的理解,它看起来相同,但为什么使用setVisible()是正确的,另一个是不正确的? – Hoang

+1

在控制台日志错误说'serie.hide不是一个函数,因为它是在您的文章动态和'可见'是每个系列的属性,所以setVisible在我的文章中工作 –