2015-12-24 3 views
1

У меня есть график Highcharts так: http://jsfiddle.net/tasrgpqL/Highcharts нажмите на колонке (не бар)

В «plotOptions» я добавил событие щелчка, который вызывает тревогу, когда один из баров щелкают. Но теперь я хочу добавить событие click для всего столбца, а не только столбцов. Как я могу это сделать?

plotOptions: { 
     column: { 
      pointPadding: 0.2, 
      borderWidth: 0, 
      point:{ 
       events:{ 
       click: function(event) { 
        alert('test'); 
       } 
       } 
      } 
     }, 

    }, 

ответ

1

Вам нужно добавить событие щелчка внутри параметры диаграммы:

chart: { 
    events: { 
     click: function (event) { 
      alert("clicked column"); 
     } 
    }, 

Вот FIDDLE

+0

большой, thnx! Можете ли вы также рассказать мне, как получить данные щелкнутого столбца в событии клика? –

+0

@RoelJansen вы узнали, как получить данные щелкнутого столбца? – Hese

+0

@Hese Проверьте мой комментарий ниже. Надеюсь, поможет. –

1

Чтобы получить данные о щелкнули колонке, я использовал PHP, как это:

// Convert PHP array to JSON object 
var subjects = <?php echo json_encode($subjects); ?> 

$('#chart').highcharts({ 
    chart: { 
     events:{ 
      click: function(event) { 
       // Get clicked column by looking for rounded click posistion of x-axis in JSON object 
       var column = Math.abs(Math.round(event.xAxis[0].value)); 
       var id = subjects[column]; 
      } 
     } 
    }, 
    xAxis: { 
     categories: [ 
      // Create JSON by looping through array 
      <?php foreach($subjects as $subject): ?> 
       {name: '<?=$subject['name']?>', y: 1, id: <?=$subject['id']?>}, 
      <?php endforeach; ?> 
     ] 
    } 
}); 

Я знаю, это немного уродливый, но я еще не нашел другого пути.

+1

Roel для президента! – Hese

Смежные вопросы