谷歌图表时间轴-获取行鼠标单击文本

古尔佩雷特·辛格(Gurpreet Singh)

我想在行/ svg图像上的任何位置单击鼠标以获取“文本值”,例如,在下图中,如果我在第二个蓝色突出显示的行上单击任何位置,那么我应该能够将文本“ Adams”作为警报。我尝试通过svg元素进行迭代,但是svg元素是水平创建的,而不是垂直创建的

例子

白帽

您可以使用'select' event来确定所选的值

'select'事件触发时,检查chart.getSelection()

google.visualization.events.addListener(chart, 'select', function () {
  selection = chart.getSelection();
  if (selection.length > 0) {
    console.log(dataTable.getValue(selection[0].row, 0));
  }
});

getSelection返回选定行的数组,
时间轴图表一次只允许选择一行,
因此选择始终在第一个元素中
chart.getSelection()[0]

数组中的每个元素都将具有row和的属性column
column将始终null用于时间轴图表)

一旦有了row,就可以getValue在DataTable上使用
dataTable.getValue(selection[0].row, 0)

getValue接受两个参数,rowIndex并且columnIndex

用于0获取第一列的值

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

google.charts.load('current', {
  callback: function () {
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'President' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ 'Adams',      new Date(1797, 2, 4),  new Date(1801, 2, 4) ],
      [ 'Jefferson',  new Date(1801, 2, 4),  new Date(1809, 2, 4) ]]);

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

    google.visualization.events.addListener(chart, 'select', function () {
      selection = chart.getSelection();
      if (selection.length > 0) {
        console.log(dataTable.getValue(selection[0].row, 0));
      }
    });

    chart.draw(dataTable);
  },
  packages: ['timeline']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="timeline"></div>

编辑

要捕获彩色条之外行中任何位置的点击,请
使用该'ready'事件查找svg元素并添加一个侦听器

元素将具有x零(0属性
fill'none'

由于元素的数量将与行的数量匹配,因此
我们可以使用元素的索引(在其对等元素之间)来查找值

请参见以下工作片段,
同时使用'select''click'事件来查找所点击的值

google.charts.load('current', {
  callback: function () {
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'President' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ 'Adams',      new Date(1797, 2, 4),  new Date(1801, 2, 4) ],
      [ 'Jefferson',  new Date(1801, 2, 4),  new Date(1809, 2, 4) ]]);

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

    var saveRows = [];
    google.visualization.events.addListener(chart, 'ready', function () {
      chartRows = container.getElementsByTagName('rect');
      Array.prototype.forEach.call(chartRows, function(row) {
        if ((parseInt(row.getAttribute('x')) === 0) && (row.getAttribute('fill') !== 'none')) {
          saveRows.push(row);
          row.addEventListener('click', function (e) {
            for (var i = 0; i < saveRows.length; i++) {
              if (e.target === saveRows[i]) {
                getRowLabel(i);
                break;
              }
            }
          }, false);
        }
      });
    });

    google.visualization.events.addListener(chart, 'select', function () {
      selection = chart.getSelection();
      if (selection.length > 0) {
        getRowLabel(selection[0].row);
      }
    });

    function getRowLabel(index) {
      console.log(dataTable.getValue(index, 0));
    }

    chart.draw(dataTable);
  },
  packages: ['timeline']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="timeline"></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击时间轴时,Kdenlive崩溃

来自分类Dev

从用户时间轴获取转发计数

来自分类Dev

从用户的时间轴获取推文

来自分类Dev

Google时间轴图表轴

来自分类Dev

Chrome DevTools时间轴:新图表

来自分类Dev

如何使用JavaFX中的时间轴更新标签的文本?

来自分类Dev

用于获取Facebook组的时间轴/帖子的小部件

来自分类Dev

带有x轴日期的Google图表时间轴

来自分类Dev

Google图表时间轴,日期位于x轴

来自分类Dev

Excel图表,X轴时间轴间距

来自分类Dev

使用鼠标单击获取元素ID的文本

来自分类Dev

JS-鼠标单击的计算持续时间

来自分类Dev

从鼠标单击事件获取行和列

来自分类Dev

将日期字段传递到Google图表时间轴

来自分类Dev

Google图表中的工具提示:时间轴API

来自分类Dev

Google时间轴图表从错误的日期开始

来自分类Dev

从Google时间轴图表中删除边框

来自分类Dev

Google时间轴图表:两个横轴

来自分类Dev

由于Twitter不返回“ next_results”,因此从时间轴获取推文的问题

来自分类Dev

如何从iOS中的Twitter时间轴对象获取大尺寸的用户个人资料图像

来自分类Dev

获取人的Facebook ID如何在我的时间轴上标记我

来自分类Dev

如何在不让用户登录的情况下获取公开推文(时间轴)?

来自分类Dev

如何使用时间轴获取更多数据

来自分类Dev

Google Charts API:将空白行添加到时间轴吗?

来自分类Dev

Matplotlib时间轴

来自分类Dev

在文本坐标中获取文本区域中的鼠标单击位置

来自分类Dev

Javascript Ckeditor获取鼠标单击位置

来自分类Dev

用鼠标单击缩放图表作为弹出全屏(高图)?

来自分类Dev

鼠标单击展开表格行

Related 相关文章

热门标签

归档