Highcharts Demo

author(s): Torstein Hønsi

HTML

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

JavaScript

$(function () {

     (function (H) {
         var noop = function () {},
         defaultOptions = H.getOptions(),
             each = H.each,
             extend = H.extend,
             format = H.format,
             wrap = H.wrap,
             Chart = H.Chart,
             seriesTypes = H.seriesTypes,
             PieSeries = seriesTypes.pie,
             ColumnSeries = seriesTypes.column,
             fireEvent = HighchartsAdapter.fireEvent,
             inArray = HighchartsAdapter.inArray;

         H.wrap(H.Chart.prototype, 'drillUp', function (proceed) {

             var chart = this,
                 drilldownLevels = chart.drilldownLevels,
                 levelNumber = drilldownLevels[drilldownLevels.length - 1].levelNumber,
                 i = drilldownLevels.length,
                 chartSeries = chart.series,
                 seriesI = chartSeries.length,
                 level,
                 oldSeries,
                 newSeries,
                 oldExtremes,
                 addSeries = function (seriesOptions) {
                     var addedSeries;
                     each(chartSeries, function (series) {
                         if (series.userOptions === seriesOptions) {
                             addedSeries = series;
                         }
                     });

                     addedSeries = addedSeries || chart.addSeries(seriesOptions, false);
                     if (addedSeries.type === oldSeries.type && addedSeries.animateDrillupTo) {
                         addedSeries.animate = addedSeries.animateDrillupTo;
                     }
                     if (seriesOptions === level.seriesOptions) {
                         newSeries = addedSeries;
                     }
                 };

            
             while (i--) {

                 level = drilldownLevels[i];
                  console.log(level.levelNumber);
                 console.log(levelNumber);
                 if (level.levelNumber ===...