Событие клика по оси старшей диаграммы - PullRequest
3 голосов
/ 24 ноября 2011

Я хочу иметь возможность привязать событие к осям в верхних диаграммах, чтобы я мог выставить некоторые параметры для них в пользовательском интерфейсе (интервал оси, форматирование текста, линии сетки и т.кажется, это способ сделать это в старших чартах.До сих пор я могу заставить его делать ставки, когда я нажимаю на ярлыки, но не когда я нажимаю на пробелы между ярлыками.Смотрите версию скрипта здесь, для версии 2.2.4: http://jsfiddle.net/gW4p6/174/

var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        marginRight: 80 // like left
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },
    yAxis: [{
          lineWidth: 1,
          title: {
              text: 'Secondary Axis'
          }
    }],

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]        
    }]
});

var clearSelection = function() { $('.highcharts-axis').css('stroke', ''); };

$('.highcharts-axis').click(function(event) {
    clearSelection();
    $(this).css('stroke', 'green');
    return false;
});
$(document).click(clearSelection);
$('svg').click(clearSelection);

Можно ли как-нибудь надежно отловить событие щелчка по элементу g.highcharts-axis?Для бонусных марок, как лучше всего связать ось с ее axis.id в опциях?Лучшее, что я могу придумать, - это полагаться на то, что оси отображаются в том порядке, в котором они поставляются, поэтому я могу просто зацикливаться.

Ответы [ 2 ]

5 голосов
/ 19 декабря 2011
$('.highcharts-axis text').click(function(){ alert($(this).text());  }); 

Это предупреждает текст оси. Таким образом, вы можете привязать событие клика к каждому элементу на оси.

0 голосов
/ 06 февраля 2013

Вы можете использовать событие клика. Посмотрите на API: http://api.highcharts.com/highcharts#series.data.events.click

Из обработчика событий вы можете получить строку с "this.name" или даже получить какой-то идентификатор с помощью this.options.somevariable

«somevariable» означает любое имя переменной, которое вы создаете в данных серии. Например, в моем случае я называю идентификатор просто «id»:

{
   name: "My label",
   id: 6,
   events: { 
      click: function()
      {
         alert(
            'The name is ' + this.name +
            ' and the identifier is ' + this.options.id
         );
      }
   }
}
...