Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌图表时间线-鼠标单击获取行上的文本_Javascript_Jquery_Html_Svg_Google Visualization - Fatal编程技术网

Javascript 谷歌图表时间线-鼠标单击获取行上的文本

Javascript 谷歌图表时间线-鼠标单击获取行上的文本,javascript,jquery,html,svg,google-visualization,Javascript,Jquery,Html,Svg,Google Visualization,我想在鼠标单击行/svg图像上的任意位置时取出“文本值”,例如,在下图中,如果我单击第二个蓝色突出显示行上的任意位置,那么我应该能够将文本“Adams”作为警报。我尝试遍历svg元素,但svg元素是水平创建的,而不是垂直创建的 您可以使用'select'来确定所选的值 当触发'select'事件时,请选中chart.getSelection() 返回所选行的数组, 时间线图表一次只允许选择一行, 因此,选择将始终位于第一个元素中 chart.getSelection()[0] 数组中的每个元素都

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


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

当触发
'select'
事件时,请选中
chart.getSelection()

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

数组中的每个元素都有

对于时间线图表将始终为
null

一旦有了
,就可以在数据表上使用
dataTable.getValue(选择[0]。行,0)

getValue
接受两个参数,
rowIndex
columnIndex

使用
0
获取第一列的值

请参阅以下工作片段

google.charts.load('current'{
回调:函数(){
var dataTable=new google.visualization.dataTable();
addColumn({type:'string',id:'President'});
addColumn({type:'date',id:'Start'});
addColumn({type:'date',id:'End'});
dataTable.addRows([
[“华盛顿”,新日期(1789年3月30日),新日期(1797年2月4日)],
[“亚当斯”,新日期(1797年2月4日),新日期(1801年2月4日)],
[“杰斐逊”,新日期(1801年2月4日),新日期(1809年2月4日)];
var container=document.getElementById('timeline');
var chart=newgoogle.visualization.Timeline(容器);
google.visualization.events.addListener(图表,'select',函数(){
selection=chart.getSelection();
如果(selection.length>0){
console.log(dataTable.getValue(选择[0]。行,0));
}
});
图表绘制(数据表);
},
软件包:[“时间线”]
});

感谢您的努力:),但这不是我想要的,如果您仔细阅读问题陈述-我要求的是“如果我单击第二个蓝色突出显示行上的任何位置”,因此如果我单击该行上的任何位置,我应该得到文本值,而不仅仅是在项目单击时间轴上。第二个蓝色突出显示行将我赶走,我只看到一排蓝色的。无论如何,请参见编辑以上答案以捕获单击行上的任意位置。。。
google.visualization.events.addListener(chart, 'select', function () {
  selection = chart.getSelection();
  if (selection.length > 0) {
    console.log(dataTable.getValue(selection[0].row, 0));
  }
});