2016-06-03 2 views
0

Когда я создаю легенду, которая является html, я хотел бы знать элемент, который был нажат. Кажется, Хичгартс там ничего не заправил.Highcharts html leged, в какой столбец был нажат

Вот некоторые примеры кода:

  point:{ 
      events:{ 
       legendItemClick:function(event){ 
        //how to get the element clicked here? 
        //want something to happen if it has a class of pieLegendNumber 

А код создания легенды:

legend : { 
    enabled: true, 
    layout: 'vertical', 
    align: 'left', 
    useHTML: true, 
    verticalAlign: 'top', 
    labelFormatter: function() { 
     return '<div style="width:150px;"><span style="float:left;width: 230px;min-width: 230px;">' 
      + this.name 
      + '<span style="float:right;color:red" class="pieLegendNumber">' 
      + this.y 
      + '</span></div>'; 
    } 
    }, 
    title:{ 
    text:"legend" 
    }, 

Весь код можно найти here.

Спасибо, что нашли время, чтобы прочитать мой вопрос.

ответ

2

Я использовал index свойство точки данных, чтобы получить легенды элемента, который был щелкнули

http://jsfiddle.net/bgxa62z1/4/

Надеется, что это помогает

[Update ]

Вы c используйте event.browserEvent.target, или иногда, если вы добавите обработчик в серию .event.click, вы можете использовать event.originalEvent.target, чтобы получить элемент, который был нажат.

Решение http://jsfiddle.net/bgxa62z1/7/

+0

Благодарим вас за ответ. нужно знать, какой столбец щелкнут. Так что сделайте что-нибудь, когда щелкнули имя браузера, но сделайте что-то еще, когда номер будет нажат. – HMR

+0

@HMR Что-то вроде этого? http://jsfiddle.net/bgxa62z1/5/ – sagargurtu

+0

Да, как я предлагаемый в комментарии к Emre, я рассмотрю такое решение. Проблемы с этим: 1. При сверлении обработчики больше не работают, вы можете решить это, выполнив '$ ('# container'). click (" .pieLegendNumber ", function (event) {' (как в комментарии к Emre), но это все равно будет уменьшаться при нажатии на номер. См. измененную скрипту: http://jsfiddle.net/bgxa62z1/6/ – HMR

0

Как mantioned в reference, legendItemClick является не применимо к круговой диаграмме.

Итак, я сделал такие же небольшие изменения в вашей демонстрации jsFiddle, и теперь она работает.

Вот решение: jsFiddle

+0

Спасибо за ваш ответ, но то, что именно он должен делать с вопросом? Когда я нажимаю на элемент в легенде, мне нужно знать столбец, который был нажат. Переданный объект и вызывающий объект (это), похоже, не содержат никакой информации о том, какой элемент был нажат. Сценарий показывает рабочий пример для 'plotoptions.point.events.click'. Может быть, я просто буду использовать '$ (hichartContainer) .click (" .pieLegendNumber ", function ...' – HMR

+1

О, извините, я неправильно понял ваш вопрос. Да, объект не имеет информации об элементе с щелчком. –