HighCharts - Pie Chart

by anikettiwari

HTML

<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="container" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto"></div>

JavaScript

$(function () {
    $('#container').highcharts({
        chart: {
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false,
            type: 'pie'
        },
        title: {
            text: 'Test all the things'
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                borderWidth: 0,
                //innerSize: 80,
                innerSize: 0,
                dataLabels: {
                    enabled: false
                },
                showInLegend: true,
                slicedOffset: 20,
                //depth: 45 
                point: {
                    events: {
                
                legendItemClick: function (event) {

    var seriesIndex = this.index;
  var series = this.series.data;
  var seriesList = this.series.data.map(function(element) {
    return element.visible;
  });
  seriesList.splice(seriesIndex, 1);
  debugger;
  if ((this.visible) && (this.series.chart.restIsHidden != true)){
    for (var i = 0; i < series.length; i++) {
      if (series[i].index != seriesIndex) {
        series[i].visible = false;
       debugger;
      }
    }
    series[seriesIndex].visible = true;
    this.visible = true;
    this.series.chart.restIsHidden = true;
    debugger;
  }
  else if ((this.visible) && (seriesList.indexOf(true) !== -1)){
    for (var i = 0; i < series.length; i++) {
      if (this.series.data[i].index != seriesIndex) {
        this.series.data[i].visible == true ? this.series.data[i].visible = true : this.series.data[i].visible = false;
      }
    }
    this.visible = false;
    if (series.map(function(element){ return element.visible } ).indexOf(false) !== -1) {
      this.series.chart.restIsHidden = true;
    }
    else{
      this.series.chart.restIsHidden = false;
    }
  }
  else if((this.visible) &&...