javascript - 如何在 googlechart api 中添加函数 SelectHandler

标签 javascript php arrays charts google-visualization

我一直在尝试在堆积条形图中添加可点击的链接。我根本找不到任何解决办法。有人可以帮助我吗?我想要的是当我点击数据时,它会根据点击的数据转到链接

Image of the column

我正在使用这个Googlechart

这是代码:

 var data = google.visualization.arrayToDataTable([
        ['Genre', 'Fantasy & Sci Fi', 'Romance', 'Mystery/Crime', 'General',
         'Western', 'Literature', { role: 'annotation' } ],
        ['2010', 10, 24, 20, 32, 18, 5, ''],
        ['2020', 16, 22, 23, 30, 16, 9, ''],
        ['2030', 28, 19, 29, 30, 12, 13, '']
      ]);

      var options = {
        width: 600,
        height: 400,
        legend: { position: 'top', maxLines: 3 },
        bar: { groupWidth: '75%' },
        isStacked: true
      };

这是我添加的。对于每个数据,它只会转到相同的链接..我想将每个数据放在不同的链接

function selectHandler() {
          var selectedItem = chart.getSelection()[1];
          if (selectedItem) {
            var topping = data.getValue(selectedItem.row, 1);
            alert('The user selected ' + topping);
          }
        }
 google.visualization.events.addListener(chart, 'select', selectHandler);

最佳答案

除了选择的行之外,选择属性还包括列...

请参阅以下工作片段...

google.charts.load('current', {
  packages: ['corechart']
}).then(function () {
  var data = google.visualization.arrayToDataTable([
    ['Genre', 'Fantasy & Sci Fi', 'Romance', 'Mystery/Crime', 'General', 'Western', 'Literature', { role: 'annotation' } ],
    ['2010', 10, 24, 20, 32, 18, 5, ''],
    ['2020', 16, 22, 23, 30, 16, 9, ''],
    ['2030', 28, 19, 29, 30, 12, 13, '']
  ]);

  var options = {
    width: 600,
    height: 400,
    legend: {position: 'top', maxLines: 3},
    bar: {groupWidth: '75%'},
    isStacked: true
  };

  var container = document.getElementById('chart');
  var chart = new google.visualization.BarChart(container);

  google.visualization.events.addListener(chart, 'select', selectHandler);
  function selectHandler() {
    var selectedItem = chart.getSelection();
    if (selectedItem.length > 0) {
      var value = data.getValue(selectedItem[0].row, selectedItem[0].column);
      console.log('The user selected ' + data.getColumnLabel(selectedItem[0].column) + ': ' + value);
    }
  }

  chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>

关于javascript - 如何在 googlechart api 中添加函数 SelectHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58375675/

相关文章:

php - === 和 != 可以互换使用吗?

php - 从一个选择选项值中获取多个值。 PHP HTML

java - 相同的字符串比较给我错误

JavaScript Canvas 对象数组?范围问题? ocanvas.js

javascript - Jquery 在字符串中搜索单词

Javascript 在 xhttp POST 请求中发送带有 zip 文件的元数据

php - 为什么我必须将 libmysql.dll 复制到 apache/bin 目录才能正确加载 PHP 扩展?

javascript - 如何在 Javascript 中将 RR (IBI) 数据转换为心率

javascript - 带参数的 JQuery 回调 - 新手

php - 交互式单页应用程序