2015-12-24 42 views
1

我有一个Highcharts图所示:http://jsfiddle.net/tasrgpqL/Highcharts点击栏(不会吧)

在我加入时,点击任何一间酒吧触发警报click事件“plotOptions”。但是现在我想为整个列添加一个点击事件,而不仅仅是酒吧。我怎样才能做到这一点?

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

罗尔总统! – Hese