单击表格中的行时出现新的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


以上是单击表格中的行时出现新的Google图表错误。UncaughtTypeError:b.splitisnotafunction–已经工作好几年了的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>