单击表格中的行时出现新的Google图表错误。UncaughtTypeError:b.splitisnotafunction–已经工作好几年了
我们有多个 Google 可视化表,我们已经成功使用了好几年。但是,在过去的一周中,我们开始在其中许多中看到此错误
我们试图做的是点击表格中的一行,允许我们根据该行中的内容超链接到另一个页面。正如我所说,它已经工作了好几年。我确切地知道它在哪里破裂。正是这一行触发了错误:
var row = table.getSelection()[0].row;
我知道这是这一行,因为如果我为 ROW 硬编码一个值,超链接会按预期工作。
关于什么可能导致未更改的代码出现此错误的任何建议?
这是代码:
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.js"></script>
<script type="text/javascript">
google.load("visualization", "1.1", {packages:["table"]});
google.setOnLoadCallback(drawVisualization);
function drawVisualization() {
var d = new google.visualization.arrayToDataTable([$tableReportResults]);
var table = new google.visualization.Table(document.getElementById('table_report_results'));
var view = new google.visualization.DataView(d);
var cssClassNames = {'hoverTableRow': 'hover-table-row', headerCell: 'googleHeaderCell'};
var colIndex = 0;
var last_row = d.getNumberOfRows() -1;
var ts = $( "#dropdown_1_dropdown option:selected" ).val();
var syear = $( "#dropdown_2_dropdown option:selected" ).text();
syear = encodeURIComponent(syear);
google.visualization.events.addListener(table, 'ready', function () {
$('.google-visualization-table-table').find('td').each(function() {
$(this).mouseover(function(){
colIndex = $(this).index();
var row = $(this).parent().index() - 1; // subtract 1 for the table header
//console.log(row, colIndex);
});
});
});
google.visualization.events.addListener(table, 'select', function() {
$('.google-visualization-table-table').find('td').each(function() {
$(this).mouseover(function(){
colIndex = $(this).index();
row = $(this).parent().index() - 1; // subtract 1 for the table header
console.log('mouseover = ' + colIndex + ' , ' + row);
});
});
var row = table.getSelection()[0].row;
回答
我使用谷歌图表的先前版本 49 解决了我的问题。
<script>
google.charts.load('49',
{packages: ['corechart']});
</script>
或者:
<script type="text/javascript">
{literal}google.charts.load('49', {packages: ['corechart', 'geochart', 'timeline', 'gantt', 'treemap']});{/literal}
</script>
如果您使用实际版本,您应该按照以下信息更改您的代码:
https://groups.google.com/g/google-visualization-api/c/G4Keck3KVwU
THE END
二维码